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

0 Members and 4 Guests are viewing this topic.

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1500 on: Wed, 02 March 2016, 19:42:18 »
Does Easy AVR use/import/include any special (non-standard Python) libraries whose source code I cannot see?

I really want to be able to understand every bit of your software, so I really want to see every source code line so I can understand how your software works, as I'm trying to use this to learn more about python.

New to Python so I'm not even sure if python #includes files.

Thanks.

It doesn't depend on any external libraries except for packaging.

But if you're trying to learn Python, don't use my keymapper.  Seriously.  The code is crap.  It was created with no plan, tacking on features as I thought of them over the course of two years.  It's full of needless complexity and almost completely lacks comments.

Offline typewriter

  • Posts: 10
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1501 on: Wed, 02 March 2016, 19:51:42 »

It doesn't depend on any external libraries except for packaging.

But if you're trying to learn Python, don't use my keymapper.  Seriously.  The code is crap.  It was created with no plan, tacking on features as I thought of them over the course of two years.  It's full of needless complexity and almost completely lacks comments.
[/quote]

Thank you for that quick reply
When you mean packaging, you mean to turn your code into an exe file right?
But since I'll be running the py file straight from the terminal, I won't need the packaging library, am I right?

Any python code to study to make my own keyboard someday is better than no code, haha, so I appreciate that you made it open source

Offline TheGlow

  • Posts: 48
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1502 on: Thu, 03 March 2016, 09:54:37 »
Hey Metalliqaz, any other suggestions? I switched back to TMK last week as the doubles were starting to slow me down on some work.
I get 2-3 a day on TMK maybe, and seems mostly spaces. I can see them and if spellcheck is available in that app then itll inform me as well.

Hmmm, sounds like you're saying the issue also pops up on TMK.  If that's the case, and since brentnycum reported that his Frosty Flake was working, I'm starting to think it could be your hardware :(
This weekend I had to do a little work on my home pc with a Razer Blackwidow Ultimate, cherry mx blues.
And sadly i saw 1-2 of these double types. So I can only think somehow I am doing something wrong. Is my hand doing a shake or something right at the actuation point on my way up? But I swear my hand is no where near some of those keys as I should already be on the way to the next one.
But at such a minimal amount of using it heavily for several days that just might be a general typo fluke.

What kind of setting might that be then, more debounce then? I do see a drastic increase when using your firmware vs TMK.

I have a spare Ducky shine1 w/ browns fullsize at the office so I'll try and use this for a bit out of curiosity and see if I hit that often.
If not then I must have a hardware issue either on the frostyflake or my brain.

Offline samwisekoi

  • MAWG since 1997
  • * Administrator
  • Posts: 2480
  • Location: Mt. View, California
  • Sorry, moving houses. Be back ASAP.
    • Tweet samwisekoi
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1503 on: Sat, 05 March 2016, 11:42:01 »
Does Easy AVR use/import/include any special (non-standard Python) libraries whose source code I cannot see?

I really want to be able to understand every bit of your software, so I really want to see every source code line so I can understand how your software works, as I'm trying to use this to learn more about python.

New to Python so I'm not even sure if python #includes files.

Thanks.

It doesn't depend on any external libraries except for packaging.

But if you're trying to learn Python, don't use my keymapper.  Seriously.  The code is crap.  It was created with no plan, tacking on features as I thought of them over the course of two years.  It's full of needless complexity and almost completely lacks comments.

But the RESULT is awesome!
I like keyboards and case modding.  Everything about a computer should be silent -- except the KEYBOARD!

'85 IBM F-122/Soarer Keyboard |  Leopold FC200 TKL (Browns) + GH36 Keypad (Browns/Greens) | GH-122 (Whites/Greens) with Nuclear Data Green keycaps in a Unicomp case

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1504 on: Sat, 05 March 2016, 16:36:33 »
Finally wrote some documentation

Hopefully this completes my task of making the tool usable by everyone who wants to try DIY keyboards

Offline mseaworthy

  • Posts: 63
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1505 on: Mon, 07 March 2016, 22:43:22 »
Wondering if anyone might know the resolution to an error I'm getting when trying to build firmware for Atreus?
I loaded the default Atreus keymap, made no edits and simply tried to create the firmware. The error I receive is: “init object is not iterable.”

I'm running in Windows 10; downloaded the EasyAvr software today and the version number is 2.01.04 from the About box.
I haven’t specifically downloaded any Python code but of course there is the “python34.dll” in the main directory.

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1506 on: Tue, 08 March 2016, 06:45:08 »
Wondering if anyone might know the resolution to an error I'm getting when trying to build firmware for Atreus?
I loaded the default Atreus keymap, made no edits and simply tried to create the firmware. The error I receive is: “init object is not iterable.”

I'm running in Windows 10; downloaded the EasyAvr software today and the version number is 2.01.04 from the About box.
I haven’t specifically downloaded any Python code but of course there is the “python34.dll” in the main directory.
Probably I made a mistake with the config. Thanks for testing, I'll take a look

Offline gcardinal

  • Posts: 7
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1507 on: Tue, 08 March 2016, 07:00:51 »
Is it possible to ue Easy AVR as a PS/2 > USB converter?..

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1508 on: Tue, 08 March 2016, 07:29:51 »
Is it possible to ue Easy AVR as a PS/2 > USB converter?..

No.  You need a Soarer-verter.

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1509 on: Tue, 08 March 2016, 07:49:33 »
Wondering if anyone might know the resolution to an error I'm getting when trying to build firmware for Atreus?
I loaded the default Atreus keymap, made no edits and simply tried to create the firmware. The error I receive is: “init object is not iterable.”

I'm running in Windows 10; downloaded the EasyAvr software today and the version number is 2.01.04 from the About box.
I haven’t specifically downloaded any Python code but of course there is the “python34.dll” in the main directory.

I just released version 2.1.5 with a fix for this

Offline gcardinal

  • Posts: 7
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1510 on: Tue, 08 March 2016, 10:04:20 »
Is it possible to ue Easy AVR as a PS/2 > USB converter?..

No.  You need a Soarer-verter.

Okay, thanks for feedback - and I do run Soarer's now, but there is no support for custom key's outside of "normal" scope - and that is what I have with Tandberg TDV 5000

Offline mseaworthy

  • Posts: 63
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1511 on: Tue, 08 March 2016, 14:27:07 »
Quote

I just released version 2.1.5 with a fix for this

Thanks for making the changes to the installation so quickly. I am able to confirm the previous error that appeared while trying to build the Atreus firmware is corrected.

Following your new documentation (many thanks) I have built the firmware, loaded the HEX file, and selected the microchip (ATmega32U4 for Atreus). However, when I choose USB with the “Select Communications Medium” icon I get the following error: AtLibUSBDfu.dll not found. Following this error message is another that says: Could not load dynamic library.

However, in checking the bin directory under  the Flip 3.4.7 install, I do find the AtLibUSBDfu.dll.

Also, I have tried this process both prior to resetting the bootloader and while in the bootloader mode and got the same errors both times.

 Is it possible the application can’t find a path to it, or do I need to install something else?
Thanks for your help and consideration.
« Last Edit: Tue, 08 March 2016, 14:31:57 by mseaworthy »

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1512 on: Tue, 08 March 2016, 14:46:13 »
Quote

I just released version 2.1.5 with a fix for this

Thanks for making the changes to the installation so quickly. I am able to confirm the previous error that appeared while trying to build the Atreus firmware is corrected.

Following your new documentation (many thanks) I have built the firmware, loaded the HEX file, and selected the microchip (ATmega32U4 for Atreus). However, when I choose USB with the “Select Communications Medium” icon I get the following error: AtLibUSBDfu.dll not found. Following this error message is another that says: Could not load dynamic library.

However, in checking the bin directory under  the Flip 3.4.7 install, I do find the AtLibUSBDfu.dll.

Also, I have tried this process both prior to resetting the bootloader and while in the bootloader mode and got the same errors both times.

 Is it possible the application can’t find a path to it, or do I need to install something else?
Thanks for your help and consideration.

Maybe you don't have the Atmel driver installed.  Try reading this post

Offline dragonpower2000

  • Posts: 35
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1513 on: Tue, 08 March 2016, 16:29:21 »
Huge GH n00b (i'm over at r/mk but i fon't hate this place the sites design jsut confuses me so i rarely go here)

Can i make a custom layout, i am handwiring a preonic and i know how to program it this would just be aloteasier

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1514 on: Tue, 08 March 2016, 16:56:58 »
Huge GH n00b (i'm over at r/mk but i fon't hate this place the sites design jsut confuses me so i rarely go here)

Can i make a custom layout, i am handwiring a preonic and i know how to program it this would just be aloteasier
Yes you can. Read the README.md on github

Offline mseaworthy

  • Posts: 63
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1515 on: Tue, 08 March 2016, 17:12:13 »
Quote

Maybe you don't have the Atmel driver installed.  Try reading this post

Thanks for directing me to that other post regarding installation for dfu-programmer and driver updates. It might be helpful to non-developers if you could add a few sub-steps in your documentation for Easy AVR in the Mac section. After Step 1 (download Easy AVR source from Github), Step 2 instructs to start the tool with easykeymap.sh.

What’s not explicit here is how to start it. I realize many here are developers but I’m not. I’m guessing what’s implied here is: a) go to Terminal b) change directories to the folder where Easy AVR was installed c) start the tool with easykeymap.sh.

If this route were to eventually work for me, should I expect to see a GUI interface similar to the Windows app or is it all command line inside of Terminal on the Mac?

I’m not sure if that’s correct, but that’s what I’ve done. I’m sure I have dfu-programmer installed, but when I enter easykeymap.sh I get “command not found.”


I’ve been trying for three days trying to get firmware onto an Atreus keyboard. I’m sure it’s my ineptitude, but I’ve tried in Windows and Mac environments. Got most of the way there in Window but couldn’t load the HEX in Windows because of either:

1) Device Manager in Windows 10 wouldn’t allow me to update the driver to the DFU driver…each time I tried on all the various USB connections I got a message that “Windows has determined the best driver is installed…”—obviously only one of them will work, but nothing is clearly identifying any of them as the Atmega32u4.

Thanks again for your continued assistance.

Offline dragonpower2000

  • Posts: 35
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1516 on: Tue, 08 March 2016, 17:18:44 »
Huge GH n00b (i'm over at r/mk but i fon't hate this place the sites design jsut confuses me so i rarely go here)

Can i make a custom layout, i am handwiring a preonic and i know how to program it this would just be aloteasier
Yes you can. Read the README.md on github

Thank you so much, just made my life alot easier

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1517 on: Tue, 08 March 2016, 17:31:31 »
Quote

Maybe you don't have the Atmel driver installed.  Try reading this post

Thanks for directing me to that other post regarding installation for dfu-programmer and driver updates. It might be helpful to non-developers if you could add a few sub-steps in your documentation for Easy AVR in the Mac section. After Step 1 (download Easy AVR source from Github), Step 2 instructs to start the tool with easykeymap.sh.

What’s not explicit here is how to start it. I realize many here are developers but I’m not. I’m guessing what’s implied here is: a) go to Terminal b) change directories to the folder where Easy AVR was installed c) start the tool with easykeymap.sh.

If this route were to eventually work for me, should I expect to see a GUI interface similar to the Windows app or is it all command line inside of Terminal on the Mac?

I’m not sure if that’s correct, but that’s what I’ve done. I’m sure I have dfu-programmer installed, but when I enter easykeymap.sh I get “command not found.”


I’ve been trying for three days trying to get firmware onto an Atreus keyboard. I’m sure it’s my ineptitude, but I’ve tried in Windows and Mac environments. Got most of the way there in Window but couldn’t load the HEX in Windows because of either:

1) Device Manager in Windows 10 wouldn’t allow me to update the driver to the DFU driver…each time I tried on all the various USB connections I got a message that “Windows has determined the best driver is installed…”—obviously only one of them will work, but nothing is clearly identifying any of them as the Atmega32u4.

Thanks again for your continued assistance.

If you're a novice, I'd suggest using Windows.  I never had any trouble with Windows 10.  I can't really remember if I had to install the driver or not, but it definitely works.  You aren't supposed to update the USB connections, you're supposed to update the AVR device.  Flip is Atmel's tool, not mine.  If you need support, maybe you can ask them.

Offline dragonpower2000

  • Posts: 35
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1518 on: Wed, 09 March 2016, 16:10:21 »
Does the handwired code support the teensy 2.0 ++ or do i need to buy a 2.0 for this to work?

(sorry if i am just missing something)

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1519 on: Wed, 09 March 2016, 20:57:06 »
Does the handwired code support the teensy 2.0 ++ or do i need to buy a 2.0 for this to work?

(sorry if i am just missing something)

Yes, it is supported.  It hasn't been tested, and in fact I need to fix something, but it will be working in the next release.

When writing your config file, the first thing the tutorial tells you to change is the import for the specific build you want to use.  You have to choose one of the ones listed in the "keymapper/templates" subdirectory (see github).

Usually a handwire board would use ATmega32U4_16MHz_TKL.py for the Teensy, but for Teensy++, you would use AT90USB1286_16MHz_FULLSIZE.

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1520 on: Wed, 09 March 2016, 21:16:18 »
Yay! 2.1.6 is posted

Offline meow a cat

  • Posts: 531
  • Location: British Columbia, Canada
  • Resistance is futile.
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1521 on: Fri, 11 March 2016, 06:08:22 »
Hey Metalliqaz, is there a way to create a looping mouse button 1 macro through EasyAVR? Something that could be toggled on/off?

Looping forever would be cool, but if not, then for as long as possible.

Boards:
Silver 84-key KMAC LE, 62g lubed & stickered ergo-clears, GON NerD PCB, polycarbonate plate,MX lock/Phosphorglow IBM Model M SSK 1391472/White HHKB Pro 2, Hasu controller/WKL Phantom, 50g vintage blacks, MX lock
Leeku G80-1800 (build in progress)

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1522 on: Fri, 11 March 2016, 06:09:57 »
Hey Metalliqaz, is there a way to create a looping mouse button 1 macro through EasyAVR? Something that could be toggled on/off?

Looping forever would be cool, but if not, then for as long as possible.
Sorry, it doesn't support anything like that :(

Offline meow a cat

  • Posts: 531
  • Location: British Columbia, Canada
  • Resistance is futile.
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1523 on: Fri, 11 March 2016, 06:15:31 »
Hey Metalliqaz, is there a way to create a looping mouse button 1 macro through EasyAVR? Something that could be toggled on/off?

Looping forever would be cool, but if not, then for as long as possible.
Sorry, it doesn't support anything like that :(

Darn, thanks anyway man.

Keep up the good work on this project, it's awesome. :)

Boards:
Silver 84-key KMAC LE, 62g lubed & stickered ergo-clears, GON NerD PCB, polycarbonate plate,MX lock/Phosphorglow IBM Model M SSK 1391472/White HHKB Pro 2, Hasu controller/WKL Phantom, 50g vintage blacks, MX lock
Leeku G80-1800 (build in progress)

Offline dragonpower2000

  • Posts: 35
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1524 on: Sat, 12 March 2016, 09:41:27 »
The firmware i build does not work, i use a teensy 2.0 ++ and the layout is a 5x12 ortholinear keyboard, the binds for the buttuns are not chanches since i wanted to test first

This is the config file

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/>.

"""Keyboard definition for a hand-wired keyboard"""

# The first decision you have to make is to choose a hardware
# layout.  Assuming you are using a Teensy2.0, this is probably
# the best hardware layout for you.  ATmega32U4_16MHz_SIXTY might
# also work for you, though.  Leave the rest of the imports like
# they are here.
import easykeymap.templates.AT90USB1286_16MHz_FULLSIZE as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config

# The name of the board in the "New" dialog
description = "Hand-wire-preonic"
# Unique string to identify THIS exact hardware layout
unique_id = "HANDWIRE_420"
# The name of the .cfg file the system will try to find for altered
# layout options
cfg_name = "handwire_420"

# Hand-wired boards usually use Teensy controllers.  Set this to
# True to make sure that the bootloader works.
teensy = True
# If your board has an exposed switch for going into boot mode, you
# can set this to True and the system won't prompt you to add a BOOT
# key to your layout.
hw_boot_key = True

# These two parameters define the size of the keyboard in the display.
# Must be whole numbers in units of quarter key lengths.  A TKL
# usually is 6 rows high with a 1/2 key length gutter under the Fn row.
# Therefore int(6.5*4).  Apply the same logic the width.  Remember
# we are talking visual width, not number of columns.
display_height = int(5*4)
display_width = int(12*4)

# The number of rows and columns in the matrix.  In a hand-wired board
# each of these will correspond to a single pin.
num_rows = 5
num_cols = 12

# Keyboards work by scanning a matrix to check each key.  The scan
# works by setting an active row/column (strobing) and then reading
# the status of every switch that crosses it (sensing).
# strobe_cols tells the firmware which direction you have your diodes
# installed.  If diodes go from column to row, then strobe_cols must
# be True.  If diodes go from row to column, then strobe_cols must be
# False.
strobe_cols = True
# strobe_low tells the firmware if a row/column should be activated
# by pulling the pin high or low.  Hand-wired boards will almost always
# use strobe_low = True
strobe_low = True

# The matrix_hardware, matrix_strobe, matrix_sense parameters tell
# the firmware how to initialize the ports, what pins must be set
# for each row/column, and what order to strobe/sense.  These are
# complicated and are explained fully elsewhere.  It is easiest to
# configure the matrix by using the make_matrix_config function as
# shown below.  Just customize 'rows' and 'cols' for your project.
matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
    strobe_cols=strobe_cols,
    strobe_low=strobe_low,
    rows=[F0, F1, F2, F3, F3],
    cols=[D6, D7, E0, E1, C0, C1, C2, C3, C4, C5, C6, C7],
    device=firmware.device
)

# The total number of LED outputs (indicators + backlights)
num_leds = 0
# The number of LED indicators (for example, caps lock)
num_ind = 0
# The number of backlight enable modes.  This counts the number of
# options available for the BL_ENABLE key
num_bl_enab = 0

# Define the default assignments of the indicator LEDs.  The length
# of this list must equal num_ind.  For each LED, the first string
# is the description of the key shown in the GUI.  The second string
# is the default function.  For valid function options, see
# led_assignments in gui.py
led_definition = [
   
]

# Definition of LED pins.  (indicators and backlights)  Indicators
# must come first.  LED_DRIVER_PULLUP is used when the pin is connected
# to the anode and the cathode is connected to ground.
# LED_DRIVER_PULLDOWN is used when the pin is connected to the cathode
# and the anode is connected to the power supply.
led_hardware = [
#   
]

# True if the board supports backlight, otherwise False
backlighting = False

# This can be used to configure different backlighting zones.  Explained
# in more detail elsewhere.  Length of list must equal num_bl_enab.
# Length of each tuple must equal num_leds.  Uses the same ordering
# as led_hardware
bl_modes = [
   
]

# Just leave this here as-is.
KMAC_key = None

# 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.
keyboard_definition = [
    [((4, 4), (0, 0), 'HID_KEYBOARD_SC_ESCAPE'),
     ((4, 4), (0, 1), 'HID_KEYBOARD_SC_F1'),
     ((4, 4), (0, 2), 'HID_KEYBOARD_SC_F2'),
     ((4, 4), (0, 3), 'HID_KEYBOARD_SC_F3'),
     ((4, 4), (0, 4), 'HID_KEYBOARD_SC_F4'),
     ((4, 4), (0, 5), 'HID_KEYBOARD_SC_F5'),
     ((4, 4), (0, 6), 'HID_KEYBOARD_SC_F6'),
     ((4, 4), (0, 7), 'HID_KEYBOARD_SC_F7'),
     ((4, 4), (0, 8), 'HID_KEYBOARD_SC_F8'),
     ((4, 4), (0, 9), 'HID_KEYBOARD_SC_F9'),
     ((4, 4), (0, 10), 'HID_KEYBOARD_SC_F10'),
     ((4, 4), (0, 11), 'HID_KEYBOARD_SC_F11')],


    [((4, 4), (1, 0), 'HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE'),
     ((4, 4), (1, 1), 'HID_KEYBOARD_SC_1_AND_EXCLAMATION'),
     ((4, 4), (1, 2), 'HID_KEYBOARD_SC_2_AND_AT'),
     ((4, 4), (1, 3), 'HID_KEYBOARD_SC_3_AND_HASHMARK'),
     ((4, 4), (1, 4), '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), (1, 7), 'HID_KEYBOARD_SC_7_AND_AND_AMPERSAND'),
     ((4, 4), (1, 8), 'HID_KEYBOARD_SC_8_AND_ASTERISK'),
     ((4, 4), (1, 9), 'HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS'),
     ((4, 4), (1, 10), 'HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE'),
     ((4, 4), (1, 11), 'HID_KEYBOARD_SC_PAGE_UP')],

    [((4, 4), (2, 0), 'HID_KEYBOARD_SC_TAB'),
     ((4, 4), (2, 1), 'HID_KEYBOARD_SC_Q'),
     ((4, 4), (2, 2), 'HID_KEYBOARD_SC_W'),
     ((4, 4), (2, 3), 'HID_KEYBOARD_SC_E'),
     ((4, 4), (2, 4), 'HID_KEYBOARD_SC_R'),
     ((4, 4), (2, 5), 'HID_KEYBOARD_SC_T'),
     ((4, 4), (2, 6), 'HID_KEYBOARD_SC_Y'),
     ((4, 4), (2, 7), 'HID_KEYBOARD_SC_U'),
     ((4, 4), (2, 8), 'HID_KEYBOARD_SC_I'),
     ((4, 4), (2, 9), 'HID_KEYBOARD_SC_O'),
     ((4, 4), (2, 10), 'HID_KEYBOARD_SC_P'),
     ((4, 4), (2, 11), 'HID_KEYBOARD_SC_PAGE_DOWN')],

    [((4, 4), (3, 0), 'HID_KEYBOARD_SC_CAPS_LOCK'),
     ((4, 4), (3, 1), 'HID_KEYBOARD_SC_A'),
     ((4, 4), (3, 2), 'HID_KEYBOARD_SC_S'),
     ((4, 4), (3, 3), 'HID_KEYBOARD_SC_D'),
     ((4, 4), (3, 4), 'HID_KEYBOARD_SC_F'),
     ((4, 4), (3, 5), 'HID_KEYBOARD_SC_G'),
     ((4, 4), (3, 6), 'HID_KEYBOARD_SC_H'),
     ((4, 4), (3, 7), 'HID_KEYBOARD_SC_J'),
     ((4, 4), (3, 8), 'HID_KEYBOARD_SC_K'),
     ((4, 4), (3, 9), 'HID_KEYBOARD_SC_L'),
     ((4, 4), (3, 10), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE'),
     ((4, 4), (3, 11), 'HID_KEYBOARD_SC_ENTER')],
     

    [((4, 4), (4, 0), 'HID_KEYBOARD_SC_LEFT_SHIFT'),
     ((4, 4), (4, 1), 'HID_KEYBOARD_SC_Z'),
     ((4, 4), (4, 2), 'HID_KEYBOARD_SC_X'),
     ((4, 4), (4, 3), 'HID_KEYBOARD_SC_C'),
     ((4, 4), (4, 4), 'HID_KEYBOARD_SC_V'),
     ((4, 4), (4, 5), 'HID_KEYBOARD_SC_B'),
     ((4, 4), (4, 6), 'HID_KEYBOARD_SC_N'),
     ((4, 4), (4, 7), 'HID_KEYBOARD_SC_M'),
     ((4, 4), (4, 8), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
     ((4, 4), (4, 9), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
     ((4, 4), (4, 10), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK'),
     ((4, 4), (4, 11), 'HID_KEYBOARD_SC_RIGHT_SHIFT')]
     ]

# Just leave this here as-is.
alt_layouts = {}

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1525 on: Sat, 12 March 2016, 11:40:39 »
The firmware i build does not work, i use a teensy 2.0 ++ and the layout is a 5x12 ortholinear keyboard, the binds for the buttuns are not chanches since i wanted to test first

This is the config file

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/>.

"""Keyboard definition for a hand-wired keyboard"""

# The first decision you have to make is to choose a hardware
# layout.  Assuming you are using a Teensy2.0, this is probably
# the best hardware layout for you.  ATmega32U4_16MHz_SIXTY might
# also work for you, though.  Leave the rest of the imports like
# they are here.
import easykeymap.templates.AT90USB1286_16MHz_FULLSIZE as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config

# The name of the board in the "New" dialog
description = "Hand-wire-preonic"
# Unique string to identify THIS exact hardware layout
unique_id = "HANDWIRE_420"
# The name of the .cfg file the system will try to find for altered
# layout options
cfg_name = "handwire_420"

# Hand-wired boards usually use Teensy controllers.  Set this to
# True to make sure that the bootloader works.
teensy = True
# If your board has an exposed switch for going into boot mode, you
# can set this to True and the system won't prompt you to add a BOOT
# key to your layout.
hw_boot_key = True

# These two parameters define the size of the keyboard in the display.
# Must be whole numbers in units of quarter key lengths.  A TKL
# usually is 6 rows high with a 1/2 key length gutter under the Fn row.
# Therefore int(6.5*4).  Apply the same logic the width.  Remember
# we are talking visual width, not number of columns.
display_height = int(5*4)
display_width = int(12*4)

# The number of rows and columns in the matrix.  In a hand-wired board
# each of these will correspond to a single pin.
num_rows = 5
num_cols = 12

# Keyboards work by scanning a matrix to check each key.  The scan
# works by setting an active row/column (strobing) and then reading
# the status of every switch that crosses it (sensing).
# strobe_cols tells the firmware which direction you have your diodes
# installed.  If diodes go from column to row, then strobe_cols must
# be True.  If diodes go from row to column, then strobe_cols must be
# False.
strobe_cols = True
# strobe_low tells the firmware if a row/column should be activated
# by pulling the pin high or low.  Hand-wired boards will almost always
# use strobe_low = True
strobe_low = True

# The matrix_hardware, matrix_strobe, matrix_sense parameters tell
# the firmware how to initialize the ports, what pins must be set
# for each row/column, and what order to strobe/sense.  These are
# complicated and are explained fully elsewhere.  It is easiest to
# configure the matrix by using the make_matrix_config function as
# shown below.  Just customize 'rows' and 'cols' for your project.
matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
    strobe_cols=strobe_cols,
    strobe_low=strobe_low,
    rows=[F0, F1, F2, F3, F3],
    cols=[D6, D7, E0, E1, C0, C1, C2, C3, C4, C5, C6, C7],
    device=firmware.device
)

# The total number of LED outputs (indicators + backlights)
num_leds = 0
# The number of LED indicators (for example, caps lock)
num_ind = 0
# The number of backlight enable modes.  This counts the number of
# options available for the BL_ENABLE key
num_bl_enab = 0

# Define the default assignments of the indicator LEDs.  The length
# of this list must equal num_ind.  For each LED, the first string
# is the description of the key shown in the GUI.  The second string
# is the default function.  For valid function options, see
# led_assignments in gui.py
led_definition = [
   
]

# Definition of LED pins.  (indicators and backlights)  Indicators
# must come first.  LED_DRIVER_PULLUP is used when the pin is connected
# to the anode and the cathode is connected to ground.
# LED_DRIVER_PULLDOWN is used when the pin is connected to the cathode
# and the anode is connected to the power supply.
led_hardware = [
#   
]

# True if the board supports backlight, otherwise False
backlighting = False

# This can be used to configure different backlighting zones.  Explained
# in more detail elsewhere.  Length of list must equal num_bl_enab.
# Length of each tuple must equal num_leds.  Uses the same ordering
# as led_hardware
bl_modes = [
   
]

# Just leave this here as-is.
KMAC_key = None

# 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.
keyboard_definition = [
    [((4, 4), (0, 0), 'HID_KEYBOARD_SC_ESCAPE'),
     ((4, 4), (0, 1), 'HID_KEYBOARD_SC_F1'),
     ((4, 4), (0, 2), 'HID_KEYBOARD_SC_F2'),
     ((4, 4), (0, 3), 'HID_KEYBOARD_SC_F3'),
     ((4, 4), (0, 4), 'HID_KEYBOARD_SC_F4'),
     ((4, 4), (0, 5), 'HID_KEYBOARD_SC_F5'),
     ((4, 4), (0, 6), 'HID_KEYBOARD_SC_F6'),
     ((4, 4), (0, 7), 'HID_KEYBOARD_SC_F7'),
     ((4, 4), (0, 8), 'HID_KEYBOARD_SC_F8'),
     ((4, 4), (0, 9), 'HID_KEYBOARD_SC_F9'),
     ((4, 4), (0, 10), 'HID_KEYBOARD_SC_F10'),
     ((4, 4), (0, 11), 'HID_KEYBOARD_SC_F11')],


    [((4, 4), (1, 0), 'HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE'),
     ((4, 4), (1, 1), 'HID_KEYBOARD_SC_1_AND_EXCLAMATION'),
     ((4, 4), (1, 2), 'HID_KEYBOARD_SC_2_AND_AT'),
     ((4, 4), (1, 3), 'HID_KEYBOARD_SC_3_AND_HASHMARK'),
     ((4, 4), (1, 4), '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), (1, 7), 'HID_KEYBOARD_SC_7_AND_AND_AMPERSAND'),
     ((4, 4), (1, 8), 'HID_KEYBOARD_SC_8_AND_ASTERISK'),
     ((4, 4), (1, 9), 'HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS'),
     ((4, 4), (1, 10), 'HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE'),
     ((4, 4), (1, 11), 'HID_KEYBOARD_SC_PAGE_UP')],

    [((4, 4), (2, 0), 'HID_KEYBOARD_SC_TAB'),
     ((4, 4), (2, 1), 'HID_KEYBOARD_SC_Q'),
     ((4, 4), (2, 2), 'HID_KEYBOARD_SC_W'),
     ((4, 4), (2, 3), 'HID_KEYBOARD_SC_E'),
     ((4, 4), (2, 4), 'HID_KEYBOARD_SC_R'),
     ((4, 4), (2, 5), 'HID_KEYBOARD_SC_T'),
     ((4, 4), (2, 6), 'HID_KEYBOARD_SC_Y'),
     ((4, 4), (2, 7), 'HID_KEYBOARD_SC_U'),
     ((4, 4), (2, 8), 'HID_KEYBOARD_SC_I'),
     ((4, 4), (2, 9), 'HID_KEYBOARD_SC_O'),
     ((4, 4), (2, 10), 'HID_KEYBOARD_SC_P'),
     ((4, 4), (2, 11), 'HID_KEYBOARD_SC_PAGE_DOWN')],

    [((4, 4), (3, 0), 'HID_KEYBOARD_SC_CAPS_LOCK'),
     ((4, 4), (3, 1), 'HID_KEYBOARD_SC_A'),
     ((4, 4), (3, 2), 'HID_KEYBOARD_SC_S'),
     ((4, 4), (3, 3), 'HID_KEYBOARD_SC_D'),
     ((4, 4), (3, 4), 'HID_KEYBOARD_SC_F'),
     ((4, 4), (3, 5), 'HID_KEYBOARD_SC_G'),
     ((4, 4), (3, 6), 'HID_KEYBOARD_SC_H'),
     ((4, 4), (3, 7), 'HID_KEYBOARD_SC_J'),
     ((4, 4), (3, 8), 'HID_KEYBOARD_SC_K'),
     ((4, 4), (3, 9), 'HID_KEYBOARD_SC_L'),
     ((4, 4), (3, 10), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE'),
     ((4, 4), (3, 11), 'HID_KEYBOARD_SC_ENTER')],
     

    [((4, 4), (4, 0), 'HID_KEYBOARD_SC_LEFT_SHIFT'),
     ((4, 4), (4, 1), 'HID_KEYBOARD_SC_Z'),
     ((4, 4), (4, 2), 'HID_KEYBOARD_SC_X'),
     ((4, 4), (4, 3), 'HID_KEYBOARD_SC_C'),
     ((4, 4), (4, 4), 'HID_KEYBOARD_SC_V'),
     ((4, 4), (4, 5), 'HID_KEYBOARD_SC_B'),
     ((4, 4), (4, 6), 'HID_KEYBOARD_SC_N'),
     ((4, 4), (4, 7), 'HID_KEYBOARD_SC_M'),
     ((4, 4), (4, 8), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
     ((4, 4), (4, 9), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
     ((4, 4), (4, 10), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK'),
     ((4, 4), (4, 11), 'HID_KEYBOARD_SC_RIGHT_SHIFT')]
     ]

# Just leave this here as-is.
alt_layouts = {}

I've just tested this config file with a Teensy 2++ and a piece of wire and it works fine using the latest Windows download.  That probably means your diodes are not connected in the way they're set in the config file so that's the first thing to check.

If in doubt post a pic of your wiring :)
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline dragonpower2000

  • Posts: 35
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1526 on: Sat, 12 March 2016, 12:50:11 »
The firmware i build does not work, i use a teensy 2.0 ++ and the layout is a 5x12 ortholinear keyboard, the binds for the buttuns are not chanches since i wanted to test first

This is the config file

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/>.

"""Keyboard definition for a hand-wired keyboard"""

# The first decision you have to make is to choose a hardware
# layout.  Assuming you are using a Teensy2.0, this is probably
# the best hardware layout for you.  ATmega32U4_16MHz_SIXTY might
# also work for you, though.  Leave the rest of the imports like
# they are here.
import easykeymap.templates.AT90USB1286_16MHz_FULLSIZE as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config

# The name of the board in the "New" dialog
description = "Hand-wire-preonic"
# Unique string to identify THIS exact hardware layout
unique_id = "HANDWIRE_420"
# The name of the .cfg file the system will try to find for altered
# layout options
cfg_name = "handwire_420"

# Hand-wired boards usually use Teensy controllers.  Set this to
# True to make sure that the bootloader works.
teensy = True
# If your board has an exposed switch for going into boot mode, you
# can set this to True and the system won't prompt you to add a BOOT
# key to your layout.
hw_boot_key = True

# These two parameters define the size of the keyboard in the display.
# Must be whole numbers in units of quarter key lengths.  A TKL
# usually is 6 rows high with a 1/2 key length gutter under the Fn row.
# Therefore int(6.5*4).  Apply the same logic the width.  Remember
# we are talking visual width, not number of columns.
display_height = int(5*4)
display_width = int(12*4)

# The number of rows and columns in the matrix.  In a hand-wired board
# each of these will correspond to a single pin.
num_rows = 5
num_cols = 12

# Keyboards work by scanning a matrix to check each key.  The scan
# works by setting an active row/column (strobing) and then reading
# the status of every switch that crosses it (sensing).
# strobe_cols tells the firmware which direction you have your diodes
# installed.  If diodes go from column to row, then strobe_cols must
# be True.  If diodes go from row to column, then strobe_cols must be
# False.
strobe_cols = True
# strobe_low tells the firmware if a row/column should be activated
# by pulling the pin high or low.  Hand-wired boards will almost always
# use strobe_low = True
strobe_low = True

# The matrix_hardware, matrix_strobe, matrix_sense parameters tell
# the firmware how to initialize the ports, what pins must be set
# for each row/column, and what order to strobe/sense.  These are
# complicated and are explained fully elsewhere.  It is easiest to
# configure the matrix by using the make_matrix_config function as
# shown below.  Just customize 'rows' and 'cols' for your project.
matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
    strobe_cols=strobe_cols,
    strobe_low=strobe_low,
    rows=[F0, F1, F2, F3, F3],
    cols=[D6, D7, E0, E1, C0, C1, C2, C3, C4, C5, C6, C7],
    device=firmware.device
)

# The total number of LED outputs (indicators + backlights)
num_leds = 0
# The number of LED indicators (for example, caps lock)
num_ind = 0
# The number of backlight enable modes.  This counts the number of
# options available for the BL_ENABLE key
num_bl_enab = 0

# Define the default assignments of the indicator LEDs.  The length
# of this list must equal num_ind.  For each LED, the first string
# is the description of the key shown in the GUI.  The second string
# is the default function.  For valid function options, see
# led_assignments in gui.py
led_definition = [
   
]

# Definition of LED pins.  (indicators and backlights)  Indicators
# must come first.  LED_DRIVER_PULLUP is used when the pin is connected
# to the anode and the cathode is connected to ground.
# LED_DRIVER_PULLDOWN is used when the pin is connected to the cathode
# and the anode is connected to the power supply.
led_hardware = [
#   
]

# True if the board supports backlight, otherwise False
backlighting = False

# This can be used to configure different backlighting zones.  Explained
# in more detail elsewhere.  Length of list must equal num_bl_enab.
# Length of each tuple must equal num_leds.  Uses the same ordering
# as led_hardware
bl_modes = [
   
]

# Just leave this here as-is.
KMAC_key = None

# 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.
keyboard_definition = [
    [((4, 4), (0, 0), 'HID_KEYBOARD_SC_ESCAPE'),
     ((4, 4), (0, 1), 'HID_KEYBOARD_SC_F1'),
     ((4, 4), (0, 2), 'HID_KEYBOARD_SC_F2'),
     ((4, 4), (0, 3), 'HID_KEYBOARD_SC_F3'),
     ((4, 4), (0, 4), 'HID_KEYBOARD_SC_F4'),
     ((4, 4), (0, 5), 'HID_KEYBOARD_SC_F5'),
     ((4, 4), (0, 6), 'HID_KEYBOARD_SC_F6'),
     ((4, 4), (0, 7), 'HID_KEYBOARD_SC_F7'),
     ((4, 4), (0, 8), 'HID_KEYBOARD_SC_F8'),
     ((4, 4), (0, 9), 'HID_KEYBOARD_SC_F9'),
     ((4, 4), (0, 10), 'HID_KEYBOARD_SC_F10'),
     ((4, 4), (0, 11), 'HID_KEYBOARD_SC_F11')],


    [((4, 4), (1, 0), 'HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE'),
     ((4, 4), (1, 1), 'HID_KEYBOARD_SC_1_AND_EXCLAMATION'),
     ((4, 4), (1, 2), 'HID_KEYBOARD_SC_2_AND_AT'),
     ((4, 4), (1, 3), 'HID_KEYBOARD_SC_3_AND_HASHMARK'),
     ((4, 4), (1, 4), '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), (1, 7), 'HID_KEYBOARD_SC_7_AND_AND_AMPERSAND'),
     ((4, 4), (1, 8), 'HID_KEYBOARD_SC_8_AND_ASTERISK'),
     ((4, 4), (1, 9), 'HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS'),
     ((4, 4), (1, 10), 'HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE'),
     ((4, 4), (1, 11), 'HID_KEYBOARD_SC_PAGE_UP')],

    [((4, 4), (2, 0), 'HID_KEYBOARD_SC_TAB'),
     ((4, 4), (2, 1), 'HID_KEYBOARD_SC_Q'),
     ((4, 4), (2, 2), 'HID_KEYBOARD_SC_W'),
     ((4, 4), (2, 3), 'HID_KEYBOARD_SC_E'),
     ((4, 4), (2, 4), 'HID_KEYBOARD_SC_R'),
     ((4, 4), (2, 5), 'HID_KEYBOARD_SC_T'),
     ((4, 4), (2, 6), 'HID_KEYBOARD_SC_Y'),
     ((4, 4), (2, 7), 'HID_KEYBOARD_SC_U'),
     ((4, 4), (2, 8), 'HID_KEYBOARD_SC_I'),
     ((4, 4), (2, 9), 'HID_KEYBOARD_SC_O'),
     ((4, 4), (2, 10), 'HID_KEYBOARD_SC_P'),
     ((4, 4), (2, 11), 'HID_KEYBOARD_SC_PAGE_DOWN')],

    [((4, 4), (3, 0), 'HID_KEYBOARD_SC_CAPS_LOCK'),
     ((4, 4), (3, 1), 'HID_KEYBOARD_SC_A'),
     ((4, 4), (3, 2), 'HID_KEYBOARD_SC_S'),
     ((4, 4), (3, 3), 'HID_KEYBOARD_SC_D'),
     ((4, 4), (3, 4), 'HID_KEYBOARD_SC_F'),
     ((4, 4), (3, 5), 'HID_KEYBOARD_SC_G'),
     ((4, 4), (3, 6), 'HID_KEYBOARD_SC_H'),
     ((4, 4), (3, 7), 'HID_KEYBOARD_SC_J'),
     ((4, 4), (3, 8), 'HID_KEYBOARD_SC_K'),
     ((4, 4), (3, 9), 'HID_KEYBOARD_SC_L'),
     ((4, 4), (3, 10), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE'),
     ((4, 4), (3, 11), 'HID_KEYBOARD_SC_ENTER')],
     

    [((4, 4), (4, 0), 'HID_KEYBOARD_SC_LEFT_SHIFT'),
     ((4, 4), (4, 1), 'HID_KEYBOARD_SC_Z'),
     ((4, 4), (4, 2), 'HID_KEYBOARD_SC_X'),
     ((4, 4), (4, 3), 'HID_KEYBOARD_SC_C'),
     ((4, 4), (4, 4), 'HID_KEYBOARD_SC_V'),
     ((4, 4), (4, 5), 'HID_KEYBOARD_SC_B'),
     ((4, 4), (4, 6), 'HID_KEYBOARD_SC_N'),
     ((4, 4), (4, 7), 'HID_KEYBOARD_SC_M'),
     ((4, 4), (4, 8), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
     ((4, 4), (4, 9), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
     ((4, 4), (4, 10), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK'),
     ((4, 4), (4, 11), 'HID_KEYBOARD_SC_RIGHT_SHIFT')]
     ]

# Just leave this here as-is.
alt_layouts = {}

I've just tested this config file with a Teensy 2++ and a piece of wire and it works fine using the latest Windows download.  That probably means your diodes are not connected in the way they're set in the config file so that's the first thing to check.

If in doubt post a pic of your wiring :)

it is the right way, fron the switches to the row, i might not have the latest version, ill download latest of github and try later, now i am on mobile

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1527 on: Sat, 12 March 2016, 16:35:55 »
Definitely make sure you're using the newest version.  Teensy++ support was broken prior to 2.1.5
« Last Edit: Sat, 12 March 2016, 16:38:59 by metalliqaz »

Offline dragonpower2000

  • Posts: 35
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1528 on: Sun, 13 March 2016, 04:07:22 »
Definitely make sure you're using the newest version.  Teensy++ support was broken prior to 2.1.5

Updated to latest version, redid everything, still doesn't work

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1529 on: Sun, 13 March 2016, 06:11:57 »
What exactly happens?

Offline dragonpower2000

  • Posts: 35
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1530 on: Sun, 13 March 2016, 08:18:33 »
What exactly happens?

Nothing, nothing happend, none off the keys work it does not even spamm outputs

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1531 on: Sun, 13 March 2016, 08:39:37 »
What exactly happens?

Nothing, nothing happend, none off the keys work it does not even spamm outputs

Try shorting F1 to any of the Cx pins with a piece of wire - if that outputs a number row character it confirms a diode direction problem, if it doesn't the firmware can't be flashing successfully as the config is fine.
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline dragonpower2000

  • Posts: 35
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1532 on: Sun, 13 March 2016, 09:00:17 »
What exactly happens?

Nothing, nothing happend, none off the keys work it does not even spamm outputs

Try shorting F1 to any of the Cx pins with a piece of wire - if that outputs a number row character it confirms a diode direction problem, if it doesn't the firmware can't be flashing successfully as the config is fine.

Cant i just try to change the diodes in the formware without chekibg the board

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1533 on: Sun, 13 March 2016, 09:12:24 »
What exactly happens?

Nothing, nothing happend, none off the keys work it does not even spamm outputs

Try shorting F1 to any of the Cx pins with a piece of wire - if that outputs a number row character it confirms a diode direction problem, if it doesn't the firmware can't be flashing successfully as the config is fine.

Cant i just try to change the diodes in the formware without chekibg the board

You can, there are two options strobe_cols and strobe_low which need to match your wiring so not too many combinations to try :)
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline dragonpower2000

  • Posts: 35
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1534 on: Mon, 14 March 2016, 09:36:43 »
What exactly happens?

Nothing, nothing happend, none off the keys work it does not even spamm outputs

Try shorting F1 to any of the Cx pins with a piece of wire - if that outputs a number row character it confirms a diode direction problem, if it doesn't the firmware can't be flashing successfully as the config is fine.

Cant i just try to change the diodes in the formware without chekibg the board

You can, there are two options strobe_cols and strobe_low which need to match your wiring so not too many combinations to try :)

I tried changing the diodes way, now i can write a letter and that is correct and then it spamms things, all of them are on the first row, i'll check the wiring there.

EDIT: the wiring looks good and i don't know why this is happening (also it is on pin d6)
« Last Edit: Mon, 14 March 2016, 09:48:29 by dragonpower2000 »

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3981
  • Location: Jo'burg
  • Busy making stuff
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1535 on: Mon, 14 March 2016, 10:31:32 »
Try not to use the pin D6 on the Teensy as it is used for the LED as well, that might be causing an issue.

Offline JaccoW

  • Fire Typer!!
  • * Elevated Elder
  • Posts: 2003
  • Keyboard is Lava!
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1536 on: Mon, 14 March 2016, 11:22:43 »
Would this work with a B.face X2 PCB? I'm looking for a 60% PCB that works with this firmware since I loved it on my Orion.
|||Daily driver: Duck Orion TKL
|||My other keyboards :
More
|||The Original|Home|Work|Numpad|Play|Endgame|Keycaps
x
|Déck Legend Frost|Keycool 87 LE|Leopold FC660M|FC 210TP|Raptor K1 Gaming|Duck Orion TKL|My keycaps & sets
|Pics|Pics|Pics|Pics|Pics|Pics

|||Want to know what Keycap stores there are? Check out my Keyboard Pearltree and my (FS/FT/WTB) thread

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1537 on: Mon, 14 March 2016, 11:23:33 »
Try not to use the pin D6 on the Teensy as it is used for the LED as well, that might be causing an issue.
Yeah, what Moz said

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1538 on: Mon, 14 March 2016, 11:29:01 »
Would this work with a B.face X2 PCB? I'm looking for a 60% PCB that works with this firmware since I loved it on my Orion.
Where is the hardware description?

Anyway, if it runs on an Atmega32u4, it should work.  OTD boards tend to use non-USB AVR parts, though, and those aren't supported

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3981
  • Location: Jo'burg
  • Busy making stuff
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1539 on: Mon, 14 March 2016, 12:45:52 »
All the B series PCBs use Atmega32A and vUSB, so they aren't supported.

As a general rule,
- winkeyless.kr (B series) PCBs use Atmega32A, which isn't supported. Use their bootMapperClient application
- Leeku/LifeZone PCBs also use Atmega32A. Use their JigOn application
- Duck keyboards use Atmega32u4 and can be programmed using Easy AVR/TMK.
- GON's keyboards also use Atmega32U4 and can be programmed using Easy AVR/TMK but the bootloader has to be changed.
- Most boards developed in the west use Atmega32u4 or a Atmel USB AVR MCU (Atmega32u4, AT90USB1286, Atmega32u2, Atmega16u2, etc)
- InputClub keyboards use Kinetis K20 based MCU, which isn't supported. Use their online configurator.
« Last Edit: Sat, 11 June 2016, 07:03:09 by MOZ »

Offline dragonpower2000

  • Posts: 35
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1540 on: Mon, 14 March 2016, 13:09:44 »
Try not to use the pin D6 on the Teensy as it is used for the LED as well, that might be causing an issue.
Yeah, what Moz said

Thanks! every thing is working now, finally. Everyone has been really helpfull

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3981
  • Location: Jo'burg
  • Busy making stuff
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1541 on: Mon, 14 March 2016, 13:16:36 »
So changing the D6 input to some other pin worked?

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1542 on: Mon, 14 March 2016, 13:24:04 »
Would this work with a B.face X2 PCB? I'm looking for a 60% PCB that works with this firmware since I loved it on my Orion.

If you don't need backlighting you could get a gh60 from techkeys?
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline JaccoW

  • Fire Typer!!
  • * Elevated Elder
  • Posts: 2003
  • Keyboard is Lava!
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1543 on: Mon, 14 March 2016, 13:55:03 »
Would this work with a B.face X2 PCB? I'm looking for a 60% PCB that works with this firmware since I loved it on my Orion.
If you don't need backlighting you could get a gh60 from techkeys?
I don't. I'm planning on using it in a Weaven 60% case so all I need is regular LED support. The back will be covered in CF anyway. :P
I was kind of hoping of being able to use a black PCB but that is very clean and complete looking...
|||Daily driver: Duck Orion TKL
|||My other keyboards :
More
|||The Original|Home|Work|Numpad|Play|Endgame|Keycaps
x
|Déck Legend Frost|Keycool 87 LE|Leopold FC660M|FC 210TP|Raptor K1 Gaming|Duck Orion TKL|My keycaps & sets
|Pics|Pics|Pics|Pics|Pics|Pics

|||Want to know what Keycap stores there are? Check out my Keyboard Pearltree and my (FS/FT/WTB) thread

Offline MOZ

  • KING OF THE NEWBIES
  • * Maker
  • Posts: 3981
  • Location: Jo'burg
  • Busy making stuff
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1544 on: Mon, 14 March 2016, 14:36:58 »
JaccoW, backlighting is the "regular" lighting that is used on each switch, which isn't supported by the GH60. What you are referring to is commonly called underglow/sideglow (LEDs soldered on the underside of the PCB for glow through the bottom of the case.

Offline JaccoW

  • Fire Typer!!
  • * Elevated Elder
  • Posts: 2003
  • Keyboard is Lava!
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1545 on: Mon, 14 March 2016, 16:48:40 »
JaccoW, backlighting is the "regular" lighting that is used on each switch, which isn't supported by the GH60. What you are referring to is commonly called underglow/sideglow (LEDs soldered on the underside of the PCB for glow through the bottom of the case.
crap. I thought I saw LED holes on the Techkeys website but those are just for the diodes I guess.
|||Daily driver: Duck Orion TKL
|||My other keyboards :
More
|||The Original|Home|Work|Numpad|Play|Endgame|Keycaps
x
|Déck Legend Frost|Keycool 87 LE|Leopold FC660M|FC 210TP|Raptor K1 Gaming|Duck Orion TKL|My keycaps & sets
|Pics|Pics|Pics|Pics|Pics|Pics

|||Want to know what Keycap stores there are? Check out my Keyboard Pearltree and my (FS/FT/WTB) thread

Offline dragonpower2000

  • Posts: 35
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1546 on: Mon, 14 March 2016, 17:03:27 »
JaccoW, backlighting is the "regular" lighting that is used on each switch, which isn't supported by the GH60. What you are referring to is commonly called underglow/sideglow (LEDs soldered on the underside of the PCB for glow through the bottom of the case.
crap. I thought I saw LED holes on the Techkeys website but those are just for the diodes I guess.

An gh60 satan pcb is about the same price and has support for backlightning

Ebay: http://www.ebay.com/itm/272032784852

This is also supported by this tool, the seller of it also has switches plates e.tc so everything you need to make a board, note that they don't ship to everywhere tho so see if your country is supported

Offline TheGlow

  • Posts: 48
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1547 on: Fri, 18 March 2016, 09:23:04 »
Hey Metalliqaz, any other suggestions? I switched back to TMK last week as the doubles were starting to slow me down on some work.
I get 2-3 a day on TMK maybe, and seems mostly spaces. I can see them and if spellcheck is available in that app then itll inform me as well.

Hmmm, sounds like you're saying the issue also pops up on TMK.  If that's the case, and since brentnycum reported that his Frosty Flake was working, I'm starting to think it could be your hardware :(
This weekend I had to do a little work on my home pc with a Razer Blackwidow Ultimate, cherry mx blues.
And sadly i saw 1-2 of these double types. So I can only think somehow I am doing something wrong. Is my hand doing a shake or something right at the actuation point on my way up? But I swear my hand is no where near some of those keys as I should already be on the way to the next one.
But at such a minimal amount of using it heavily for several days that just might be a general typo fluke.

What kind of setting might that be then, more debounce then? I do see a drastic increase when using your firmware vs TMK.

I have a spare Ducky shine1 w/ browns fullsize at the office so I'll try and use this for a bit out of curiosity and see if I hit that often.
If not then I must have a hardware issue either on the frostyflake or my brain.
I did a little more typing yesterday at home and yea, something is up with me it seems. I get them on the razer but again not that many. 2-3 in a day maybe.
So I would it seems to be on par with TMK on the frosty flake. some here and there. But Easy AVR seems to trigger it way more often.
Any suggests on matrix/debounce that may help?
I'm also wondering if a heavier switch would help. I've been wanting to try clears for a bit now.

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1548 on: Fri, 18 March 2016, 09:41:48 »
I did a little more typing yesterday at home and yea, something is up with me it seems. I get them on the razer but again not that many. 2-3 in a day maybe.
So I would it seems to be on par with TMK on the frosty flake. some here and there. But Easy AVR seems to trigger it way more often.
Any suggests on matrix/debounce that may help?
I'm also wondering if a heavier switch would help. I've been wanting to try clears for a bit now.

EasyAVR is meant for enthusiasts.  Therefore, I made it as "quick" as possible.  It runs at 1000Hz and the debounce logic is running loose and fast.

I think two things need to happen.  First, you may have to bump up your debounce number to something larger.

Second, I have to check my algorithm to make sure my efforts to speed it up didn't compromise its integrity.  That will be a good project for this weekend.

Offline samwisekoi

  • MAWG since 1997
  • * Administrator
  • Posts: 2480
  • Location: Mt. View, California
  • Sorry, moving houses. Be back ASAP.
    • Tweet samwisekoi
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #1549 on: Fri, 18 March 2016, 15:47:13 »
Sir!

Here are the matrix positions of the GH-122.2016.  In addition to the main matrix (Row 0-6 and Column 0-23) there are three LED circuits and two PWM backlighting circuits.  I have not wired up the backlighting, but people might, so could you please enable them in software?

Here is the matrix, including a translation between my designations of A1 through G24 to your 0,0 through 6,23:

Matrix Position
PinConnectionMatrix
F71Column 0
F62Column 1
F53Column 2
F44Column 3
F35Column 4
F26Column 5
C77Column 6
F08Column 7
F19Column 8
E110Column 9
C011Column 10
C112Column 11
C213Column 12
C314Column 13
C415Column 14
C516Column 15
C617Column 16
E718Column 17
D719Column 18
E620Column 19
E021Column 20
D622Column 21
B023Column 22
D524Column 23
B6ARow 0
B5BRow 1
B1CRow 2
D4DRow 3
D3ERow 4
D2FRow 5
D1GRow 6
B3CAPS
B4NUM
B2SCRL
B7PWM 1
D0PWM 2


Attached is a detail shot of the controller and a couple of switches so you can see the matrix and the diodes for yourself.  I'll also e-mail you a spreadsheet with all of this information sorted various ways.

Thanks for adding this little guy to your expanding roster!  Please let me know if you need anything else.  (ANSI and ISO layouts, for example.)

 - Ron | samwisekoi
I like keyboards and case modding.  Everything about a computer should be silent -- except the KEYBOARD!

'85 IBM F-122/Soarer Keyboard |  Leopold FC200 TKL (Browns) + GH36 Keypad (Browns/Greens) | GH-122 (Whites/Greens) with Nuclear Data Green keycaps in a Unicomp case