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

0 Members and 1 Guest 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 #900 on: Thu, 07 May 2015, 14:18:04 »
Is there a way to have the LEDs default mode be "ON"? Whenever the my pc goes into hybernation it switches off and I need to turn it on by cycling through the mode key 15 times. :P

You want to set the default backlight enable.  It's a setting in the config console.   For more information, use the Help menu in the keymapper.

Do you remember the state this was in for the JD45?  Mine comes up fully lit, and the lighting level scancode doesn't appear to do anything.

 - Ron | samwisekoi
(Auto-typed by my JD45 keyboard.)

I will have to check it tonight.  I'm not sure it was ever fully tested, so it may not be configured correctly.

Offline GL1TCH3D

  • Posts: 1117
  • Location: Quebec, Canada
  • Audiophile, tea lover and now keyboard hugger!
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #901 on: Sat, 09 May 2015, 19:02:32 »
Wondering how to use this with the duck viper

The viper layer isn't displayed as a default layer

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #902 on: Sat, 09 May 2015, 19:34:25 »
Wondering how to use this with the duck viper

The viper layer isn't displayed as a default layer

It doesn't support the Viper.

Offline GL1TCH3D

  • Posts: 1117
  • Location: Quebec, Canada
  • Audiophile, tea lover and now keyboard hugger!
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #903 on: Sat, 09 May 2015, 21:11:30 »
Wondering how to use this with the duck viper

The viper layer isn't displayed as a default layer

It doesn't support the Viper.

Ah realized that after xD

Trying to get this thing figured out

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #904 on: Sun, 10 May 2015, 11:45:20 »
New release today.  I added a new feature inspired by Samwisekoi.  Macros can now contain the \HINT() function.  This will print out a text representation of the programmed layer.

So to see what is programmed to the Default layer, you'd do this

\HINT(0)

To see what's programmed to FN2, you'd do this:

\HINT(2)

I extended the Macro buffer to 2kb because these hints can really take a lot of space.  Pretty much out of memory now :)

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #905 on: Sun, 10 May 2015, 13:45:38 »
Great!

I'll give it a go now, still can't find [ and ] on my JD40 :))

Edit:
Tried it on my (sideways) numberpad and got this
Code: [Select]
0)  1!  4$  7&  FN Esc
     2"  5%  8*  /  FN2
 .>  3£  6^  9(  *   =+
    Enter     +   -  Bksp
The spacing looks better in the text editor I copied from Looks fine once posted too - good work!
« Last Edit: Sun, 10 May 2015, 15:27:49 by suicidal_orange »
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline CPTBadAss

  • Woke up like this
  • Posts: 14363
    • Tactile Zine
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #906 on: Tue, 12 May 2015, 19:36:52 »
Just to float this out there: The Pegasus Hoof, which fits into the TKL Filco MJ2, also fits into the Filco Zero.

Show Image


Cool. Is the matrix the same?

I really hope so. I'll let you know if it works for me after I do the switch swap. esoomenona and bpiphany seemed to think it would work just fine so I"m hopeful it will work out fine for me.

Confirmed. The Pegasus Hoof works on the Filco Zero. Typing on it right now.

Shoutouts to metalliqaz. This is by far the easiest firmware I've ever loaded. I'm codetarded so this is amazing. Very easy as advertised. And thanks to nubbinator for the directions on how to use Flip.
« Last Edit: Tue, 12 May 2015, 19:38:25 by CPTBadAss »

Offline Photoelectric

  • * Administrator
  • Posts: 6766
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #907 on: Tue, 12 May 2015, 19:38:16 »
Im just curious how close the hardware is.  It will never work completely.

What do you mean by the last sentence?  This is not my personal keyboard--something I'm modifying for a friend--so I'd love for everything to work properly before I return it.

Adding new hardware support is a process.  code-build-test, code-build-test, until it works.  When I don't own said hardware, I require a partner who does in order to test.  Most builds take at least two tries before I get it right.  If you can help me support the KMAC happy by testing, that's great, I love adding new support.  If you won't have the board for long then it probably won't work out.

For the first test, I was wondering how close the (known) KMAC and (unknown) KMAC happy designs are.  That build would never work right, but it could give me some good information.  Then I could go start coding a firmware that does work right.  It takes a certain amount of savvy to work this process, because you have to have a backup firmware ready to program when my first few builds inevitably fail.  I'm working blind here!

Sent you a PM a while ago--not sure if you've seen it.  Writing here about it just in case.  (Ready to being experimenting, just not sure how).
- Keyboards: LZ-GH (Jailhouse Blues)M65-a, MIRA SE, E8-V1, MOON TKL, CA66
- Keyboard Case Painting Tips -
- Join Mechanical Keyboards photography group on Flickr -

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #908 on: Tue, 12 May 2015, 21:19:29 »
Im just curious how close the hardware is.  It will never work completely.

What do you mean by the last sentence?  This is not my personal keyboard--something I'm modifying for a friend--so I'd love for everything to work properly before I return it.

Adding new hardware support is a process.  code-build-test, code-build-test, until it works.  When I don't own said hardware, I require a partner who does in order to test.  Most builds take at least two tries before I get it right.  If you can help me support the KMAC happy by testing, that's great, I love adding new support.  If you won't have the board for long then it probably won't work out.

For the first test, I was wondering how close the (known) KMAC and (unknown) KMAC happy designs are.  That build would never work right, but it could give me some good information.  Then I could go start coding a firmware that does work right.  It takes a certain amount of savvy to work this process, because you have to have a backup firmware ready to program when my first few builds inevitably fail.  I'm working blind here!

Sent you a PM a while ago--not sure if you've seen it.  Writing here about it just in case.  (Ready to being experimenting, just not sure how).

Yeah I've been splitting my time among a few projects.  I need to work this.

Offline Zukoi

  • Posts: 64
  • Location: Florida
  • ****posting at 90wpm
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #909 on: Fri, 15 May 2015, 19:07:15 »
For hand wiring, it is safe to remove unused rows and col by deleting them in the handwiring_hardware.cfg?

I deleted all of rows/cols I didn't use, and it complied fine without errors but I am not certain if that is the correct way to do it. I don't have a Teensy and instead I am going to use the Arduino Micro. Since they use the same chip, I don't think I will run into issues other than the fact that less pins are available on the Micro, which is not an issue for %60 keyboards. Also, I have a separate layout for the Numpad, which requires even more deleting of rows/cols.

Also, there should be an option to select which handwiring_handware.cfg you want to use to compile the firmware, since there are other mirco controllers with different pinouts. For example, the Micro has PF1 while the Pro Micro doesn't have it.
« Last Edit: Fri, 15 May 2015, 19:53:59 by Zukoi »

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #910 on: Fri, 15 May 2015, 20:31:19 »
Yeah, you've got it.  Just like the example deletes some rows.  They are still there, just not shown in the GUI.  And if nothing is assigned, the firmware ignores them.  Ill write out something longer when I'm not on my phone

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #911 on: Fri, 15 May 2015, 23:32:02 »
Also, there should be an option to select which handwiring_handware.cfg you want to use to compile the firmware, since there are other mirco controllers with different pinouts. For example, the Micro has PF1 while the Pro Micro doesn't have it.

That's a good point.  This is a developing feature that isn't fully explored.  One thing to note is that the code was designed for the Teensy.  Until I added this feature, I hadn't really seen many people using other mini project boards.  Maybe that's because I don't really follow the TMK thread.  In any case, if you are able to install the handwire builds onto non-teensy hardware, the BOOT key probably won't work, because it is designed to jump to the Teensy loader specifically.  I may have to make some different versions for different hardware.


Offline Zukoi

  • Posts: 64
  • Location: Florida
  • ****posting at 90wpm
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #912 on: Fri, 15 May 2015, 23:38:16 »
Also, there should be an option to select which handwiring_handware.cfg you want to use to compile the firmware, since there are other mirco controllers with different pinouts. For example, the Micro has PF1 while the Pro Micro doesn't have it.

That's a good point.  This is a developing feature that isn't fully explored.  One thing to note is that the code was designed for the Teensy.  Until I added this feature, I hadn't really seen many people using other mini project boards.  Maybe that's because I don't really follow the TMK thread.  In any case, if you are able to install the handwire builds onto non-teensy hardware, the BOOT key probably won't work, because it is designed to jump to the Teensy loader specifically.  I may have to make some different versions for different hardware.
Thanks for this great software. Although tmk works fine, I feel like the configuring process is more error prone even though I know what to do. This just make it much easier and more accurate to configure everything to my liking.

I guess I'll be your guinea pig and report back my findings when I finish the build.

Offline FreeChemicals

  • Posts: 139
  • Location: euw
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #913 on: Sat, 16 May 2015, 06:58:56 »
The Orion V2 will be sent out in a few weeks, and it seems to have some additional functions, namely 3 LED clusters: RGB LEDs on the bottom, 3 between Esc & F1 and 5 above the arrow keys.


Here's a video on the indicator LEDs


Nice!

Question: How much control do we have over the indicator LEDs and the LED cluster above the arrows?
I'd prefer to have the indicator LEDs on when caps etc is off - reversed compared to standard, and have the LED cluster on at all times. But I understand it may not be a priority.

So as a request: could this functionality be added? I would love to help in any way. I assume this would require the hex file of the original firmware of course.
« Last Edit: Sat, 16 May 2015, 07:05:08 by FreeChemicals »

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 #914 on: Sat, 16 May 2015, 07:49:03 »
Sir,

I just ran the latest version of Easy Keymap, and I must say I am very impressed.  You've implemented so many features since I last used the tool.  Kudos to you, sir!

Question:  Did we (you) ever finish LED support for the GH36?  The project has started up again with a likely Beta coming out in the next few weeks, and I want to make sure builders can take advantage of the lighting effects you've put in.  Below are the GH36 prototype/beta lighting pin-outs:

Code: [Select]
D7  LED1 (PWM backlighting)
B4  NUM
B5  CAPS
B6  LED2 (Optional zone 2 PWM backlighting or ScrLk LED)

Please let me know, and thank you very much!

Best regards,

 - Ron | samwisekoi
(Auto-typed by my JD45 keyboard.)
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 #915 on: Sat, 16 May 2015, 08:03:30 »
I need to know if each is active high or active low.

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 #916 on: Sat, 16 May 2015, 08:39:02 »
High.  The NUM and CAPS circuits in particular simply pass current from B4 or B5 to an LED, a resistor, and on to ground.

D7/LED1 (on both the GH36 and the proto JD45) is connected to the base of an MPSA29 transistor, so when D7 goes high, the LEDs get current from the transistor.  Same for B6/LED2 on the GH36.

FYI, as things currently stand, the backlighting is always on for both the JD45 Proto and the GH36 Proto, so I assume that D7 is normally high as-is.

Thanks!

 - Ron | samwisekoi
(Auto-typed by my JD45 keyboard.)
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 #917 on: Sat, 16 May 2015, 09:07:02 »
High.  The NUM and CAPS circuits in particular simply pass current from B4 or B5 to an LED, a resistor, and on to ground.

D7/LED1 (on both the GH36 and the proto JD45) is connected to the base of an MPSA29 transistor, so when D7 goes high, the LEDs get current from the transistor.  Same for B6/LED2 on the GH36.

FYI, as things currently stand, the backlighting is always on for both the JD45 Proto and the GH36 Proto, so I assume that D7 is normally high as-is.

Thanks!

 - Ron | samwisekoi
(Auto-typed by my JD45 keyboard.)


Alright, so active-high then.  Then it should be working, although I probably don't have the functions right.

The code currently configures 4 LEDs for the GH36:

B4, active-high, indicator
B5, active-high, backlight (needs to change to indicator)
B6, active-high, backlight (needs to change to indicator)
D7, active-high, backlight

Indicators can be configured to be backlights, but I need to know which zone to attach them to.

The backlights are all on by default, you have to use the BL_ENABLE key to turn them off.  Does that work?

By the way, how many LEDs does the JD45 have?  Right now the code thinks it has two, but they are both D7, so that can't be right.

« Last Edit: Sat, 16 May 2015, 09:09:08 by metalliqaz »

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 #918 on: Sat, 16 May 2015, 09:55:13 »
Awesome!  I just re-built my proto GH36 and re-flashed it with 20150510, but I pulled the LEDs out in the process.  :^(  So I'll solder some in and give it a try with current firmware.

Re your current GH36 configuration, B6 should remain a backlight.  It is essentially a dual-use pin, so it can be wired in as an optional top-row backlight zone 2 OR it can be remapped as an indicator using your very cool new LED indicator remapping feature.

[edit]
NOTE:  In Easy Keymap 20150510, I only see one LED (Num Lock) in the row above the Macro-entry field.
[/edit]


On the JD45 Prototype (as it should probably be called henceforth) D7 is the one and only LED pin, set up for backlighting.  It pushes 45 LEDs via a transistor, and they are all currently lit using 21050420.  We had talked about assigning end pins D4 and D5 as indicators, but since there are only 12 of these boards in existence, there is probably no need.  I would like to be able to turn the LEDs off, however.

 - Ron | samwisekoi
(Auto-typed by my JD45 keyboard.)

p.s.  Nice job with the HINT directive!

Alright, so active-high then.  Then it should be working, although I probably don't have the functions right.

The code currently configures 4 LEDs for the GH36:

B4, active-high, indicator
B5, active-high, backlight (needs to change to indicator)
B6, active-high, backlight (needs to change to indicator)
D7, active-high, backlight

Indicators can be configured to be backlights, but I need to know which zone to attach them to.

The backlights are all on by default, you have to use the BL_ENABLE key to turn them off.  Does that work?

By the way, how many LEDs does the JD45 have?  Right now the code thinks it has two, but they are both D7, so that can't be right.
« Last Edit: Sat, 16 May 2015, 09:59:19 by 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

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #919 on: Sat, 16 May 2015, 10:00:04 »
Tuen them off using the BL_ENABLE key

Offline Zukoi

  • Posts: 64
  • Location: Florida
  • ****posting at 90wpm
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #920 on: Sat, 16 May 2015, 10:23:11 »
Tuen them off using the BL_ENABLE key
Turning things off with an ”enable ” key? That sounds weird. Maybe it should be BL_TOGGLE instead.

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #921 on: Sat, 16 May 2015, 10:47:31 »
Tuen them off using the BL_ENABLE key
Turning things off with an ”enable ” key? That sounds weird. Maybe it should be BL_TOGGLE instead.

Yeah on keyboards with 1 zone it's really a toggle.  On other keyboards, it's job is to select which set of Backlights you want to be enabled.  (Orion has 16 options, for example)

It's a function that has evolved a lot since it was added but it's pretty much too late to change it now.

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #922 on: Sat, 16 May 2015, 11:38:07 »
I posted a new version.  Hopefully it corrects the LEDs once and for all.  Unfortunately, since LED structure is saved in the save files, old GH36 save files aren't going to work with the latest keymapper :(

Offline Zukoi

  • Posts: 64
  • Location: Florida
  • ****posting at 90wpm
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #923 on: Sat, 16 May 2015, 13:45:24 »
Three suggestions:

*Auto layout loader. There should be a button that quickly loads a loadout like QWERTY and dvorak. The function doesn't have to be complete accurate. It just needs to be mostly right like how the alphas and numbers generally don't change in between layouts. The use selects the kind of keyboards they wish to have like tkl or 60%.

Let's say the user picks 60%. The program picks ESC in the top left corner then followed by 1 then 2 and so on. When the program puts down backspace, it goes to the next row. If there is a missing space like someone putting a tkl layout on a 60% grid, then there should be a warning and the program contained to the next row. The result wouldn't look pretty but maybe that's what the user wanted.

The use them tweaks it further like changing it so it follows the matrix.

This is just to make it faster to create configurations and easier to configure layouts that you'd aren't using on your keyboard currently.

*naming port pin outs. I talked about this problem before. One solution is to copy the naming scheme of the default layout whereas you type [NAME]. Same thing for the pinouts. Would require a pop up window that asks you which pinout to use when compiling for hand wiring firmware.

*faded letters of the pervious layer. This would probably not be as useful for layers that go beyond 2 but for variations of a poker, this would be useful. The idea is that when the user switches to another layer like fn, the pervious layer is shown faded and below the letters if the selected layer. In this case, that would be the default layer.

I tried to add fn arrow keys to jkli and I had to switch back and forth between the two layers to make sure it was correct. This would make it much more easier and accurate to make fn layers.
« Last Edit: Sat, 16 May 2015, 13:51:29 by Zukoi »

Offline ramnes

  • Posts: 864
  • Location: France
  • T fou, mec?
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #924 on: Sat, 16 May 2015, 14:05:14 »
I just can't read the whole thread, my question being: is it still closed source? If so, are you planning to open it one day?
23h18 - photekq: hhkb with silenced realforce sliders and lubricated well is
23h18 - photekq: the best switch i've used

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #925 on: Sat, 16 May 2015, 15:03:07 »
Also, there should be an option to select which handwiring_handware.cfg you want to use to compile the firmware, since there are other mirco controllers with different pinouts. For example, the Micro has PF1 while the Pro Micro doesn't have it.

That's a good point.  This is a developing feature that isn't fully explored.  One thing to note is that the code was designed for the Teensy.  Until I added this feature, I hadn't really seen many people using other mini project boards.  Maybe that's because I don't really follow the TMK thread.  In any case, if you are able to install the handwire builds onto non-teensy hardware, the BOOT key probably won't work, because it is designed to jump to the Teensy loader specifically.  I may have to make some different versions for different hardware.
Lack of BOOT key confirmed on Arduino Micro, but it's not really a problem as it has a physical button.

I just bought a second one to make a 60% :)

I just can't read the whole thread, my question being: is it still closed source? If so, are you planning to open it one day?

Can't speak for the future but as of today the core is still closed.
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 #926 on: Sat, 16 May 2015, 18:10:05 »
Three suggestions:

*Auto layout loader. There should be a button that quickly loads a loadout like QWERTY and dvorak. The function doesn't have to be complete accurate. It just needs to be mostly right like how the alphas and numbers generally don't change in between layouts. The use selects the kind of keyboards they wish to have like tkl or 60%.

This is certainly possible, but I've never considered it necessary.  When you start a new layout, it has QWERTY on the default and FN layers, and you can copy-paste it to any layer you want.  I think there are two common flows.  One is to make a main layer, then copy it and make some modifications for a FN layer.  The other is to start with blank and only add the mappings you want.  Both are supported.  Are you using the copy/paste functions?  EDIT: you're probably using the handwire config, which has no default mapping.  I'll see what I can do.

Let's say the user picks 60%. The program picks ESC in the top left corner then followed by 1 then 2 and so on. When the program puts down backspace, it goes to the next row. If there is a missing space like someone putting a tkl layout on a 60% grid, then there should be a warning and the program contained to the next row. The result wouldn't look pretty but maybe that's what the user wanted.

The use them tweaks it further like changing it so it follows the matrix.

This is just to make it faster to create configurations and easier to configure layouts that you'd aren't using on your keyboard currently.

*naming port pin outs. I talked about this problem before. One solution is to copy the naming scheme of the default layout whereas you type [NAME]. Same thing for the pinouts. Would require a pop up window that asks you which pinout to use when compiling for hand wiring firmware.

This is still on my todo list to look at.  The handwire capability is still new and evolving.

*faded letters of the pervious layer. This would probably not be as useful for layers that go beyond 2 but for variations of a poker, this would be useful. The idea is that when the user switches to another layer like fn, the pervious layer is shown faded and below the letters if the selected layer. In this case, that would be the default layer.

I tried to add fn arrow keys to jkli and I had to switch back and forth between the two layers to make sure it was correct. This would make it much more easier and accurate to make fn layers.

This would be very difficult, since I'm using the basic windowing kit that comes with Python.  Might be another job for copy/paste

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 #927 on: Sat, 16 May 2015, 18:36:38 »
I posted a new version.  Hopefully it corrects the LEDs once and for all.  Unfortunately, since LED structure is saved in the save files, old GH36 save files aren't going to work with the latest keymapper :(

LED functionality confirmed for the JD45 using the 20150516 version of Easy Keymap.  I'll get some LEDs onto the GH36 and test that out tomorrow.

Many thanks!

 - Ron | samwisekoi
Auto-typed by my JD45 keyboard.
« Last Edit: Sat, 16 May 2015, 18:54:07 by 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

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 #928 on: Tue, 19 May 2015, 16:34:55 »
LED functionality -- including redirects -- confirmed for the GH36 Matrix Keypad.

Thanks very much for this new release!

 - Ron | samwisekoi
(Auto-typed by my GH36 Matrix Keypad.)
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 RavenII

  • Posts: 191
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #929 on: Tue, 19 May 2015, 16:43:48 »
Is there any intention on supporting the newest techkeys card? The one with the LED Matrix?

Offline CPTBadAss

  • Woke up like this
  • Posts: 14363
    • Tactile Zine
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #930 on: Tue, 19 May 2015, 16:44:27 »
Is there any intention on supporting the newest techkeys card? The one with the LED Matrix?

Metalliqaz if you need the hardware in hand again, let me know. I could send you mine.

Offline RavenII

  • Posts: 191
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #931 on: Tue, 19 May 2015, 17:11:11 »
Is there any intention on supporting the newest techkeys card? The one with the LED Matrix?

Metalliqaz if you need the hardware in hand again, let me know. I could send you mine.

DUDE!...how dope would that be...

Offline CPTBadAss

  • Woke up like this
  • Posts: 14363
    • Tactile Zine
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #932 on: Tue, 19 May 2015, 17:13:22 »
I mean I sent him the other business card as well so I'd be happy to do it again :).

Offline RavenII

  • Posts: 191
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #933 on: Tue, 19 May 2015, 17:18:59 »
I mean I sent him the other business card as well so I'd be happy to do it again :).

Pfft, allow me, I literally can't use mine since it's not working on my Mac, haha...(Let the flames begin)

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #934 on: Tue, 19 May 2015, 19:50:59 »
What would you want it to do?

Offline RavenII

  • Posts: 191
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #935 on: Tue, 19 May 2015, 20:30:54 »
What would you want it to do?

Easier to program the macros...added bonus would be to do something with the matrix....perhaps play contra? (Kidding)...

The source is posted up, just don't know what to do with it...your tool gives people like me a chance to use devices in a different way.

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #936 on: Tue, 19 May 2015, 21:19:47 »
I'll take it on if there is a good idea for the use of the display.

An interesting thing about this project is that it's one codebase that supports all the hardware.  That means that even the Techcard thinks it is a full-fledged keyboard.  Any by the way, it all fits into an ATmega16u2, so I don't want to hear anyone say that my code isn't optimized.  That **** is dense :P

Anyway, I could add an auxiliary module to be included in the code for that hardware, but it's going to have to integrate with the keyboard code.  Games and stuff just wouldn't fit.  I just don't know exactly what it should do.  The only thing I could think of is embedding static messages to scroll.

Offline RavenII

  • Posts: 191
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #937 on: Tue, 19 May 2015, 23:07:30 »
I'll take it on if there is a good idea for the use of the display.

An interesting thing about this project is that it's one codebase that supports all the hardware.  That means that even the Techcard thinks it is a full-fledged keyboard.  Any by the way, it all fits into an ATmega16u2, so I don't want to hear anyone say that my code isn't optimized.  That **** is dense :P

Anyway, I could add an auxiliary module to be included in the code for that hardware, but it's going to have to integrate with the keyboard code.  Games and stuff just wouldn't fit.  I just don't know exactly what it should do.  The only thing I could think of is embedding static messages to scroll.

That's pretty awesome (your code being as dense as it is...), and even more that the Card thinks it's a full keyboard...mostly because there is a header with PC6, PC7, PB0, VCC, and GND (x2), which gives room for expansion.

As for the displayyyy, I don't know, to be honest...right now all it does is scroll TECH then KEYS, unless you put get into the easter egg...and play Tetris. I personally can live without Tetris. I don't know, maybe have it display the macro (if that's what's programmed) as it's being sent? Have a personal message scroll? Scrollable patterns? SNAKE!...wait, no games. Haha.

Offline CPTBadAss

  • Woke up like this
  • Posts: 14363
    • Tactile Zine
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #938 on: Wed, 20 May 2015, 07:52:04 »
I was thinking of getting it to scroll a personal message for things like reviews or meetups lol.

Offline RavenII

  • Posts: 191
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #939 on: Wed, 20 May 2015, 08:20:13 »
I was thinking of getting it to scroll a personal message for things like reviews or meetups lol.

Yeah, a personal message would be cool...

Now that I thought about it some more...since with 4 buttons there are 14 combinations of keypresses, would there be a way to utilize all the macros...using specific combinations of keys?...MAN...OR...have the layers, but activate with certain key combinations...man, the possibilities are endless!
« Last Edit: Wed, 20 May 2015, 13:05:18 by RavenII »

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 #940 on: Wed, 20 May 2015, 11:53:56 »
[EDIT]
Couple of questions now...
[/EDIT]


Question 1:  I know that switching to FN2 overrides FN1, and then FN3, will override whatever else is "locked", but is there a scancode or keypress to bring the keyboard back to "FN0" - the default layer?

Right now I am using toggle keys for FN1, FN2, and FN3, and pressing any of the three keys moves the keyboard to the desired active layer.  However, there seems to be no way to hit a key to bring the keyboard back to the default state.  (I can, of course, hit the current toggle, or another toggle twice to accomplish a reset to default, but I'd prefer some sort of "Escape to default" key.)

Am I (hopefully) missing something clever?

Question 2:  Can LEDs be added to the HANDWIRE matrix?

I've tried simply changing pin assignments in handwire_hardware.cfg and that might work in the firmware, but I can't see the new LEDs in the UI, and therefore cannot assign them.

Do I also need to make a change in handwire.cfg and if so, what change?  Or is this beyond the scope of HANDWIRE?

(Also, very, very cool functionality.  I am going to go back and re-flash my actual hand-wired keyboards!)

Thanks in advance,

 - Ron | samwisekoi
Auto-typed by my JD45 keyboard.
« Last Edit: Thu, 21 May 2015, 10:31:22 by 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

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #941 on: Fri, 22 May 2015, 03:37:10 »
@samwisekoi

1 - There is no FN0 key, but if you map one key to FNX for the current layer it would act as if there was.

2 - There is a binary behind each board you can choose and the handwired one is set up to have 2 LEDs alongside a 6x17 matrix, you can't change this.  I requested a "60% handwire" option with more LEDs a while ago but metalliqaz was reluctant to make it to my personal requirements and was going to seek other people's opinions and research what controllers had what pins available.  This was before the matrix was customisable though so not sure what the situation is now.  No-one else requested it so there's no surprise he hasn't added it, maybe now he will now there's two of us?  That would be great :thumb:
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 #942 on: Fri, 22 May 2015, 09:59:57 »
I love you guys, you're always keeping me on my toes.  The project would still look like this if you weren't driving me to improve.

Question 1:  I know that switching to FN2 overrides FN1, and then FN3, will override whatever else is "locked", but is there a scancode or keypress to bring the keyboard back to "FN0" - the default layer?

Right now I am using toggle keys for FN1, FN2, and FN3, and pressing any of the three keys moves the keyboard to the desired active layer.  However, there seems to be no way to hit a key to bring the keyboard back to the default state.  (I can, of course, hit the current toggle, or another toggle twice to accomplish a reset to default, but I'd prefer some sort of "Escape to default" key.)

Am I (hopefully) missing something clever?

I think suicidal_orange has it right.  You're using all your layer keys as toggle.  Okay, nothing wrong with that.  Now, mentally create the layout you want with the "return to default" key.  To create that layout in the Easy keymapper, just replace that "return to default" key with the layer key for the current layer.  Done!

In the past, I've been asked for "layer up" and "layer down" keys, and I've responded the same way.  The current set of configuration options are general purpose, and thus able to map that scheme among many others.


Question 2:  Can LEDs be added to the HANDWIRE matrix?

I've tried simply changing pin assignments in handwire_hardware.cfg and that might work in the firmware, but I can't see the new LEDs in the UI, and therefore cannot assign them.

Do I also need to make a change in handwire.cfg and if so, what change?  Or is this beyond the scope of HANDWIRE?



The HANDWIRE hardware option is just a Phantom binary that comes with a blank grid that you can mold to any wild board you make.  Phantom has two LEDs and that can't be changed.

For true 100% configurable hand-wired support, I would have to make some changes to the firmware code and create a dedicated binary, then add the configuration features to the keymapper.  I am willing to do this work, but it will take some time and some planning.

Right now, I'm thinking of a generic 8x18 matrix with like 8 LED outputs that can be assigned to any combination of pins.  The main change I'd have to make to support it is that the current firmware has no way of understanding that a row/col/led could be just unassigned.  I would also have to make some way for the configuration of the hardware to be captured in the GUI.

There is already a request in to support multiple hardware_configuration.ini setups for different keyboards.  (right now you just have to have multiple installations)  Man, I think I need to hire a contractor!  :eek:  Are there any Python coders out there?


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 #943 on: Fri, 22 May 2015, 10:09:29 »
#1 - That works.  Thanks!

#2 - Having the handwire option at all is a great thing.  And it supports my actual hand-wired keyboards as is.  However, the new LED re-assignment functionality means we can have (for example) a numpad that becomes backlit on NUMLOCK or a 60% where the top row changes color when FN is pressed.  And if you have enough pins, you can have those things and normal indicators!

Me, I wanted to assign a couple of pins to backlighting, and then a few more to FN state indicators.

 - Ron | samwisekoi
Auto-typed by my JD45 keyboard.

p.s.  And... metalliqaz slips in while I am typing.  I need to ponder his theoretical versatile design and re-reply.

@samwisekoi

1 - There is no FN0 key, but if you map one key to FNX for the current layer it would act as if there was.

2 - There is a binary behind each board you can choose and the handwired one is set up to have 2 LEDs alongside a 6x17 matrix, you can't change this.  I requested a "60% handwire" option with more LEDs a while ago but metalliqaz was reluctant to make it to my personal requirements and was going to seek other people's opinions and research what controllers had what pins available.  This was before the matrix was customisable though so not sure what the situation is now.  No-one else requested it so there's no surprise he hasn't added it, maybe now he will now there's two of us?  That would be great :thumb:
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 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 #944 on: Fri, 22 May 2015, 11:15:39 »
I think 100% configurable is too much to ask for.  Or possibly even to shoot for.  Already I think the handwire matrix allows the use of more pins than can really be implemented on a hand-wired board.  Maybe Matt3o could use all of the end and internal pins on the Teensy, but I don't think I could.  Nevertheless, the Phantom was, IMHO, a very good choice for a template, because that is probably the most common customizable keyboard out there.  So I think a slightly modified Phantom binary would be a very good next step.

For purposes of common language, I am going to call the current handwire template "HANDWIRE-TKL", because that is really what it is.  And frankly as such it pushes the limit of the Teensy with the 6x17 matrix plus two LEDs.  So HANDWIRE-TKL = (6x17)+2 = 25 of 25 total pins used.

I think most of the actual hand-wired boards I've seen, and certainly all that I've made, were 75% or smaller.  And therefore I propose a simple modification of the Phantom binary to create a "HANDWIRE-75" template.  And using a TG3 as a model, I think a 6x15 grid is the maximum physically available, and that form factor can be supported by a 6x14 matrix without much effort.  However, the 6x14 for 6x15 cheat is hard to generically put in the UI, and using a 6x15 matrix uses 21 pins, leaving FOUR for LEDs.  And that should be enough.

So, I propose you create a HANDWIRE-75 (6x15)+4 template with 6 column pins, 14 row pins, and 2 LED pins using Teensy pins 0-21.  (For those of you who haven't done this, Teensy pins 0-21 are the ones on the side edges, and are the pins provided on a "Teensy with pins" from PJRC.)  I would use pins 22 and 23 for two more optional LED pins, and leave nasty interior pin 24 (E6) for the 15th row.  Here is the matrix that results from making those modifications to the Phantom binary:

Code: [Select]
[75% MATRIX]
ROW0=B5
ROW1=B4
ROW2=B3
ROW3=B2
ROW4=B1
ROW5=B0
COL0=D1  # changed
COL1=C7
COL2=C6
COL3=D2  # changed
COL4=D0
COL5=D3  # changed
COL6=F0
COL7=F1
COL8=F4
COL9=F5
COL10=F6
COL11=F7
COL12=D7
COL13=D6
COL14=E6  #interior 
LED0=B6  #PWM
LED1=B7  #PWM
LED2=D4  #end 
LED3=D5  #end 

This leaves two PWM pins for backlighting OR indicators and adds two non-PWM pins for indicators.

Anyhow, that is what I would suggest as a simpler next step.  I think it provides enough LED circuits for backlighting and indicators, enough rows and columns for any sub-TKL design, and minimizes UI changes.

Just my $.02.

Thanks as always,

 - Ron | samwisekoi
Auto-typed by my JD45 keyboard using firmware by metalliqaz.


The HANDWIRE hardware option is just a Phantom binary that comes with a blank grid that you can mold to any wild board you make.  Phantom has two LEDs and that can't be changed.

For true 100% configurable hand-wired support, I would have to make some changes to the firmware code and create a dedicated binary, then add the configuration features to the keymapper.  I am willing to do this work, but it will take some time and some planning.

Right now, I'm thinking of a generic 8x18 matrix with like 8 LED outputs that can be assigned to any combination of pins.  The main change I'd have to make to support it is that the current firmware has no way of understanding that a row/col/led could be just unassigned.  I would also have to make some way for the configuration of the hardware to be captured in the GUI.

There is already a request in to support multiple hardware_configuration.ini setups for different keyboards.  (right now you just have to have multiple installations)  Man, I think I need to hire a contractor!  :eek:  Are there any Python coders out there?
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 #945 on: Fri, 22 May 2015, 12:32:41 »
I think I'm gonna to go for it.  Actually I don't think it will take too much doing, if I can find some time.

Offline metalliqaz

  • * Maker
  • Thread Starter
  • Posts: 4951
  • Location: the Making Stuff subforum
  • Leopold fanboy
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #946 on: Fri, 22 May 2015, 12:49:29 »
By the way I'm planning on expanding the LED support to have even more programmable options, and to be able to encode them to flashing sequences for boards that only have a one or two LEDs, so stay tuned for that.

Offline RavenII

  • Posts: 191
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #947 on: Fri, 22 May 2015, 13:41:35 »
By the way I'm planning on expanding the LED support to have even more programmable options, and to be able to encode them to flashing sequences for boards that only have a one or two LEDs, so stay tuned for that.

Awesome that the feature is making it in...I remember bringing that up a while ago...It's nut what this tool has become.

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Easy AVR USB Keyboard Firmware and Keymapper
« Reply #948 on: Fri, 22 May 2015, 14:16:01 »
I think I'm gonna to go for it.  Actually I don't think it will take too much doing, if I can find some time.

Oh dear, I've been putting off researching how to power lots of LEDs from a Teensyalike but sounds like my "it won't work" excuse is going to disappear :))

...
There is already a request in to support multiple hardware_configuration.ini setups for different keyboards.  (right now you just have to have multiple installations)  Man, I think I need to hire a contractor!  :eek:  Are there any Python coders out there?

I would volunteer but I don't know Python, wouldn't mind learning but I'll never get round to it unless I want something that requires knowing it - this might be a good time?  Other than that, leaving Swill to play with his plate builder, maybe you could ask this guy?

...
What's even funnier is that's exactly the sort of thing I'd do. If you had the source code up somewhere and I had a free weekend I'd probably take a stab at adding the feature myself. I already spend my days writing python for work. :)
...
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 #949 on: Fri, 22 May 2015, 23:24:05 »
I think 100% configurable is too much to ask for.

Well it's not 100%, but it's a step in the right direction.  I've made a new beta version.  https://www.dropbox.com/s/8kqx2iotb9mhgzv/Easy_keymap_20150522.zip?dl=0

I expanded the hand-wired hardware to be 6x18x4 with backlighting support.  That's more IO pins than exist on an ATmega32U4, but now some of them can be assigned to "NA" (for not applicable).  So you can choose to have a huge matrix with 1 LED, or a smaller matrix with 4 LEDs.

Also, for Zukoi, it now allows you to specify several hand-wired hardware configurations, and you pick which one you want at build time.  This allows you to have multiple boards with different pinouts.