geekhack

geekhack Projects => Making Stuff Together! => Topic started by: metalliqaz on Wed, 20 November 2013, 21:50:29

Title: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 20 November 2013, 21:50:29
Info page at DT wiki (http://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware)
Source at Github (https://github.com/dhowland/EasyAVR)

I'm breaking this out from my old Epsilon thread because this software has really outgrown it's original scope.

This is a keyboard firmware and keymapping GUI for custom keyboards based on USB AVRs.  It's powerful but also really easy to use.

[attachimg=2]
[attachimg=1]

Some of the supported boards

Want more?  Make a request.

Maturity Ratings: *** = Tested and working completely     ** = Probably working     * = No testing, might not work

Features

Download

Moved to Github (https://github.com/dhowland/EasyAVR/releases)

Directions

Directions can be found in the README (https://github.com/dhowland/EasyAVR/blob/master/README.md) or on the wiki (http://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware)

Source code

See Github (https://github.com/dhowland/EasyAVR)

FAQ

Moved to the wiki (http://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware)

Not finding what you're looking for?
You can try Hasu's firmware (https://geekhack.org/index.php?topic=41989.0) or Soarer's firmware (https://geekhack.org/index.php?topic=50437.0)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 20 November 2013, 21:50:46
HOWTOs go here.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 20 November 2013, 21:51:04
Changelog

Discontinued.  For changes, follow the project on Github (https://github.com/dhowland/EasyAVR)


old changelog:

2015-06-25: Quick update

2015-06-20: New beta release

2015-05-16: Quick update

2015-05-10: New release

2015-04-20: New release

2015-04-19: New beta release

2015-04-16: New beta release

2015-03-26: Quick update

2015-03-14: Quick update

2015-03-07: New release

2015-03-04: New release

2015-03-02: New release
Note!  This release bumps the EEPROM format version so all settings will be cleared when it is loaded for the first time.

2015-03-01: New release

2015-02-23: New release

2015-02-21: New release

2015-02-15: New release

2015-02-13: Quick update

2015-02-01: Beta version updated

2014-09-02: Beta version updated

2014-08-25: Beta version updated

2014-07-03: Beta version updated

2014-06-15: Beta version updated

2014-06-15: Beta version updated

2014-05-25: Beta version updated

2014-04-20: Beta version updated

2014-04-18: Beta version updated

2014-04-14: Beta version updated

2014-04-10: Release version updated and Beta version updated

2014-04-03: Beta version updated

2014-04-01: Beta version updated

2014-03-30: Beta version updated

2014-03-29: Beta version updated

2014-03-25: Beta version updated

2014-03-24: Beta version updated

2014-03-16: Beta version updated

2014-03-13: Release version updated

2014-03-12: Beta version updated

2014-03-10: Beta version updated

2014-01-27: Beta version updated

2014-01-26: Beta version updated

2014-01-15: Beta version updated

2013-12-29: Beta version updated

2013-12-26: Release version updated

2013-12-08: Release version updated and Beta version updated

2013-12-04: Beta version updated

2013-11-26: Beta version updated

2013-11-25: Beta version updated

2013-11-24: First release version

2013-11-23: Update to beta release

2013-11-21: Initial beta release
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tjweir on Thu, 21 November 2013, 12:30:00
Want more?  Make a request.

Aikon MX-MINI support?  Its an ATMEGA32.
Here's a link to the GH page on programming an Aikon-based board - http://geekhack.org/index.php?topic=38406.0

Thanks!!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: lcs on Thu, 21 November 2013, 12:31:15
Amazing work!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: digi on Thu, 21 November 2013, 12:35:04
Support for my GON 87 NS based on PS2AVRU? Thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 21 November 2013, 13:13:31
Want more?  Make a request.

Aikon MX-MINI support?  Its an ATMEGA32.
Here's a link to the GH page on programming an Aikon-based board - http://geekhack.org/index.php?topic=38406.0

Thanks!!

I don't think that controller will get support.  I rely on the USB parts. :(
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 21 November 2013, 13:14:14
Support for my GON 87 NS based on PS2AVRU? Thanks!

Good idea.  I'll check it out.  I'd also like to add KMAC
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Glod on Thu, 21 November 2013, 13:22:04
ohhhhhhhh snap
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Photoelectric on Thu, 21 November 2013, 13:26:29
This is great!  I don't yet know what Duck LightSaver's firmware will be like in practice, but it's probably going to use ATMega32U4 and a similar programming algorithm to KMAC

http://duck0113.tistory.com/?page=7 (down the page)

Could be great to have alternative firmware / programming means.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tjweir on Thu, 21 November 2013, 14:09:31
I don't think that controller will get support.  I rely on the USB parts. :(

Ok, thanks for looking into it!

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: 0100010 on Fri, 22 November 2013, 21:31:48
Teensy++ 2.0 AT90USB1286 ?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 22 November 2013, 22:08:28
Teensy++ 2.0 AT90USB1286 ?

Definitely supported but I don't know any keyboards that use that!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 23 November 2013, 12:46:53
Added KMAC support.  The slower clock in the KMAC causes me to overrun my schedule but it still seems to work fine.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: regack on Sat, 23 November 2013, 19:35:23
Is it a lot of effort to support unique/other layouts? 
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 23 November 2013, 19:53:56
Is it a lot of effort to support unique/other layouts?

Nope!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: emguy on Sat, 23 November 2013, 20:42:29
I have no problem using it on the Frosty Flake except that the default speed of the mouse cursor is so damn slow.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 23 November 2013, 20:53:12
I have no problem using it on the Frosty Flake except that the default speed of the mouse cursor is so damn slow.

Double and triple tap the mouse keys to speed it up.  Or even four times.  After much trying I had to make the lowest setting very slow or it was impossible to make fine-point selections. I kept over shooting the target.  Tuning it is tough. 
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: dorkvader on Sun, 24 November 2013, 01:27:35
Currently supported boards
  • Epsilon (http://geekhack.org/index.php?topic=41390.0)
  • Qazpad (http://geekhack.org/index.php?topic=43183.0) (Tau)
  • Phantom (http://deskthority.net/wiki/Phantom)
  • HID Liberation Device (http://geekhack.org/index.php?topic=35065.0) (custom controller for the Filco MJ2)
  • Kitten Paw (http://geekhack.org/index.php?topic=46700.0) (custom controller for the Filco fullsize)
  • Pegasus Hoof (http://geekhack.org/index.php?topic=46700.0) (custom controller for the Filco MJ2)
  • Black Petal (http://geekhack.org/index.php?topic=46700.0) (custom controller for the Rosewill RK-9000)
  • Frosty Flake (http://geekhack.org/index.php?topic=46700.0) (custom controller for the Quickfire Rapid)
  • GH60 (http://geekhack.org/index.php?topic=41464.0)
  • GHpad (http://geekhack.org/index.php?topic=38963)
  • KMAC (http://www.originativeco.com/collections/custom-keyboards/products/kmac-2)

Want more?  Make a request.

Ergodox?

Thanks so much for this. I was having a lot of issues building the firmware for my frosty flakes (so I can test them). This will make things very easy to test, which is the biggest issue for me in making keyboards.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: 0100010 on Sun, 24 November 2013, 12:54:15
Any way to add / remove keys or create our own layout?  Was wanting to build a map for a board like this :

http://www.keyboard-layout-editor.com/#/layouts/6e020637a1db9ef6f08ea54922507bf9
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 24 November 2013, 13:46:04
Any way to add / remove keys or create our own layout?  Was wanting to build a map for a board like this :

http://www.keyboard-layout-editor.com/#/layouts/6e020637a1db9ef6f08ea54922507bf9

The problem is relating a layout to a matrix.  What does the matrix look like?  There are many, many variables.

Is that an existing keyboard?  If that is something you are planning on building with a teensy, you need to think about the row/column configuration.  On a board with that many keys, it isn't trivial.

I can probably make it so it can load layouts from an external ini file, but that isn't enough to be able to support anything you dream up.  The firmware needs to know how to handle the hardware.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 24 November 2013, 14:24:00
First release version.  Hopefully I have squashed all the bugs with the new features.  Typing this on my KMAC2. ;)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: cookiesowns on Tue, 26 November 2013, 13:30:38
Wonder if this would support SPRIT's custom PCB boards?

ATMEGA32A

ps2avrU
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 26 November 2013, 13:34:24
Wonder if this would support SPRIT's custom PCB boards?

ATMEGA32A

ps2avrU

Nope.  :(  Sorry.  Those aren't USB AVRs.  In the distant future, I might combine it with V-USB to support something like that, but it isn't in the cards for now.  I've got too many projects.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: emguy on Tue, 26 November 2013, 16:13:47
I notice that the led indications of caps and scroll are toggled on the Pegasus Hoof.  This signaling need to be fixed.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 26 November 2013, 16:29:49
I notice that the led indications of caps and scroll are toggled on the Pegasus Hoof.  This signaling need to be fixed.

Ah some feedback!  Thank you very much good sir.  That is one that I don't own, so I need people to tell me when it doesn't work.

You mean that they are inverted?  Caps LED is on when Caps Lock is enabled, and off when Caps Lock is disabled?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 26 November 2013, 16:44:54
Or is it that the Caps Lock turns on the Scroll Lock LED, and vice-versa?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: regack on Tue, 26 November 2013, 17:53:26
I was about to suggest the ErgoDox, but that also requires the MCP23018...

edit : aaaaand, then I scrolled up and saw that dorkvader already suggested it (http://geekhack.org/index.php?topic=51252.msg1131802#msg1131802)  :-[
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 26 November 2013, 17:54:14
I was about to suggest the ErgoDox, but that also requires the MCP23018...

(http://i.imgur.com/m09j6xpl.png)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: regack on Tue, 26 November 2013, 17:57:12
I was about to suggest the ErgoDox, but that also requires the MCP23018...

edit : aaaaand, then I scrolled up and saw that dorkvader already suggested it (http://geekhack.org/index.php?topic=51252.msg1131802#msg1131802)  :-[



Show Image
(http://i.imgur.com/m09j6xpl.png)


aaaaand then you've already got it in there... :D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 26 November 2013, 18:23:32
Well it isn't done.  More of a work in progress.  The problem is that I don't own one, and it will never get finished until I have one in hand.  I'm thinking about offering to build one for someone.  Then porting the code before sending it to them.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: dorkvader on Tue, 26 November 2013, 20:53:12
Well it isn't done.  More of a work in progress.  The problem is that I don't own one, and it will never get finished until I have one in hand.  I'm thinking about offering to build one for someone.  Then porting the code before sending it to them.
With a MD GB going on now, now would be the time to advertise making one for someone. If I still ahd mine, I'd loan it to you for testing, then maybe I could get some firmware put on  it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: emguy on Tue, 26 November 2013, 21:40:17
I notice that the led indications of caps and scroll are toggled on the Pegasus Hoof.  This signaling need to be fixed.

Ah some feedback!  Thank you very much good sir.  That is one that I don't own, so I need people to tell me when it doesn't work.

You mean that they are inverted?  Caps LED is on when Caps Lock is enabled, and off when Caps Lock is disabled?

Yes, the indications of those two keys are inverted.  I tested your program on both frosty flake and pegasus hoof.  The inverted indications are only found on the pegasus hoof.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 26 November 2013, 21:46:41
I notice that the led indications of caps and scroll are toggled on the Pegasus Hoof.  This signaling need to be fixed.

Ah some feedback!  Thank you very much good sir.  That is one that I don't own, so I need people to tell me when it doesn't work.

You mean that they are inverted?  Caps LED is on when Caps Lock is enabled, and off when Caps Lock is disabled?

Yes, the indications of those two keys are inverted.  I tested your program on both frosty flake and pegasus hoof.  The inverted indications are only found on the pegasus hoof.

That's very interesting.  Looking at bpiphany's schematics and code, they should all act the same.  Oh well, no matter.  This is a trivial fix.  I'll have a new beta version shortly.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 26 November 2013, 22:02:00
Okay it is done.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: regack on Tue, 26 November 2013, 22:56:20
Well it isn't done.  More of a work in progress.  The problem is that I don't own one, and it will never get finished until I have one in hand.  I'm thinking about offering to build one for someone.  Then porting the code before sending it to them.

I have a spare everything-but-the-case if you'd like to do that.  (I'm a bit short on switches, one reason it never got put together... also... didn't really NEED two..)

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 26 November 2013, 23:21:03
 ;D I'll be in touch
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: sdiearly on Thu, 28 November 2013, 04:47:36
I tried to program the generated .hex file into GH60(atmega32u4)

But function doesn't work. :'(
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 28 November 2013, 06:37:39
I tried to program the generated .hex file into GH60(atmega32u4)

But function doesn't work. :'(

I do love a challenge, but I need more information.  What doesn't work?  Are you saying that rest of the board works, but the Fn key doesn't?  That's probably a mistake in your map.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: fiftypoints on Thu, 28 November 2013, 23:03:41
Can you do the USB a.87 aikon controller? I have a nice GON keyboard, and the Aikon software is pretty limited.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 28 November 2013, 23:06:55
Can you do the USB a.87 aikon controller? I have a nice GON keyboard, and the Aikon software is pretty limited.

It's not happening anytime soon :(  I wrote this code to take advantage of the USB AVR controllers and the A87 doesn't have one.  When I finish my ongoing projects I may check out a software-only USB stack, but I can't promise anything at this point.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: fiftypoints on Thu, 28 November 2013, 23:25:42
I thought the ATMega32 was an AVR USB controller. Isn't it the same chip as the GH60?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Thu, 28 November 2013, 23:35:29
There are hoops that can be jumped through, but it requires creating a virtual USB hub, which the 32A can do but can't speak USB natively, thus Qaz' software won't make anything useful for it.

And Metalliqaz, your software is really cool, but I can predict you'll get a lot of requests for this exactly because your software is good, and the FaceW PCB looks like it will be using the 32A chip. meaning fake USB.

I can tell make to compile stuff, but I for one (and I suspect I'm not alone even on a geeky board like GH) and really limited as to how much code I can write from scratch. Have you run across any really basic tutorials that could help a non programmer who's not afraid to do some typing, how to combine v-usb with ... what, TMK?

 Actually 'Qaz if you're accepting more work from random forumites, what would be cool is a tutorial on your own software. I'm assuming that "any programmer" could take a diagram of their matrix and how it connects to their Teensy or other 32U4 board, and create an in-house layout? Assuming a person could do that would it be much of a further step to, say, use a leonardo board (ships with slightly different bootcode, I guess, and a smaller breakout board with several fewer pins and no fancy "reboot now" button or LED)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Thu, 28 November 2013, 23:37:26
50P: There are hoops that can be jumped through, but it requires creating a virtual USB hub, which the 32A can do but can't speak USB natively, thus Qaz' software won't make anything useful for it.

And Metalliqaz, your software is really cool, but I can predict you'll get a lot of requests for this exactly because your software is good, and the FaceW PCB looks like it will be using the 32A chip. meaning fake USB.

I can tell 'make' to compile stuff, but I for one (and I suspect I'm not alone even on a geeky board like GH) am really limited as to how much code I can write from scratch. Have you run across any really basic tutorials that could help a non programmer who's not afraid to do some typing, how to combine v-usb with ... what, TMK?

 Actually 'Qaz if you're accepting more work from random forumites, what would be cool is a tutorial on your own software. I'm assuming that "any programmer" could take a diagram of their matrix and how it connects to their Teensy or other 32U4 board, and create an in-house layout? Assuming a person could do that would it be much of a further step to, say, use a leonardo board (ships with slightly different bootcode, I guess, and a smaller breakout board with several fewer pins and no fancy "reboot now" button or LED)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: fiftypoints on Thu, 28 November 2013, 23:39:55
Ahh, I didn't realize I had the 32a, it's under the plate and I can't see it anymore. :rolleyes:

Thanks for taking the time to respond, though. You're doing great work!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 29 November 2013, 08:25:43
Yes, I'm picturing a way where I set up the basic hardware (for example, GH60) and then have an option to load layouts from a text-based description (for example, HHKB, Poker, Pure, allkeys).  Then I could just publish a spec for using the Teensy or bpiphany's mini controller with the software in one's own project.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: emguy on Wed, 04 December 2013, 20:11:24
I notice that the led indications of caps and scroll are toggled on the Pegasus Hoof.  This signaling need to be fixed.

Ah some feedback!  Thank you very much good sir.  That is one that I don't own, so I need people to tell me when it doesn't work.

You mean that they are inverted?  Caps LED is on when Caps Lock is enabled, and off when Caps Lock is disabled?

Yes, the indications of those two keys are inverted.  I tested your program on both frosty flake and pegasus hoof.  The inverted indications are only found on the pegasus hoof.

That's very interesting.  Looking at bpiphany's schematics and code, they should all act the same.  Oh well, no matter.  This is a trivial fix.  I'll have a new beta version shortly.

I tried the new beta version on the pegasus hoof. It is getting worse. Now the Caps LED is on when Scroll is disabled and the Scroll is on when Caps is disabled. What I have before is that the Caps LED is on when Scroll is enabled and the Scroll is on when Caps is enabled.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 04 December 2013, 20:36:10
What we have here is failure to communicate.  Don't worry, the next version will fix it correctly
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 04 December 2013, 20:42:51
Okay emguy.  New beta version posted.  Give that a try.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: emguy on Wed, 04 December 2013, 20:53:35
Everything is fixed now  ;D. I really like the idea of winkey_lock on scoll_lock.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 04 December 2013, 20:57:08
Everything is fixed now  ;D. I really like the idea of winkey_lock on scoll_lock.

Good :) Took the concept from the CODE keyboard
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tjcaustin on Sun, 08 December 2013, 13:38:48
I'm assuming that since it supports the phantom, it would support the smallfry 40 percent easy enough?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 08 December 2013, 13:42:17
I'm assuming that since it supports the phantom, it would support the smallfry 40 percent easy enough?

Support is almost complete for Smallfry AKA JD's 40%, as seen here: http://geekhack.org/index.php?topic=47133.msg1145634#msg1145634

The only thing I'm missing is the connections to the teensy (i.e. which pins go where).  If they publish a schematic or source code I will complete the support.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: regack on Sun, 08 December 2013, 14:11:34
I'm assuming that since it supports the phantom, it would support the smallfry 40 percent easy enough?

Support is almost complete for Smallfry AKA JD's 40%, as seen here: http://geekhack.org/index.php?topic=47133.msg1145634#msg1145634

The only thing I'm missing is the connections to the teensy (i.e. which pins go where).  If they publish a schematic or source code I will complete the support.

For the teensy powered one JDcarpe has ...

PF0 = col1
PF1 = col2
PF4 = col3
PF5 = col4
PF6 = col5
PF7 = col6
PB0 = col7
PB1 = col8
PB2 = col9
PB3 = col10
PB5 = col11
PB6 = col12

PD0 = row1
PD1 = row2
PD2 = row3
PD3 = row4

PC6 = LED

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 08 December 2013, 14:39:05
Are there going to be two versions?  Will the final be teensy or GH60-alike?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tjcaustin on Sun, 08 December 2013, 15:41:34
Are there going to be two versions?  Will the final be teensy or GH60-alike?

I'm confident in JD telling me that GB version will be similar to the gh60
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 08 December 2013, 16:26:08
Okay well I'll still make a teensy prototype version
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: regack on Sun, 08 December 2013, 17:08:58
Are there going to be two versions?  Will the final be teensy or GH60-alike?

The next/final version has the on-pcb ATMEGA32U4 but rows/columns ended up moving around a bit from the GH60. 

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 08 December 2013, 18:28:02
Okay initial Smallfry support added thanks to Regack.  I'll update it to the GB version when it comes to that.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Wed, 11 December 2013, 09:06:06
Excellent news.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: regack on Wed, 11 December 2013, 10:55:25
metalliqaz, what do you need in order to support the next revision of the GHpad?  It has been pretty heavily modified from the prototype.

Actually, the bigger question is for any given AVR-based design, do you simply need to know which pins on the AVR are mapped to what function on the board?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 11 December 2013, 11:10:29
metalliqaz, what do you need in order to support the next revision of the GHpad?  It has been pretty heavily modified from the prototype.

Actually, the bigger question is for any given AVR-based design, do you simply need to know which pins on the AVR are mapped to what function on the board?

My code currently supports the 4x6 matrix.  At least I think it does, I don't have one to try it.  If the design is changing again, here is a complete list of data I need to fully support a board:

I/O pins for the matrix
encoding of the rows if a line decoder is used
I/O pins for the LEDs
mapping of keyboard keys to matrix (I can usually do this from pictures of the layout)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Thu, 12 December 2013, 12:36:12
How do I put a Filco TKL with a HID Liberation Device into bootmode?  The previous owner of the HID used TMK I think to load up a layout on it I think...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 12 December 2013, 12:44:01
A magnet over the HID board. I use a powerful fridge magnet that usually holds pens.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: HaaTa on Thu, 12 December 2013, 13:05:47
Any Linux or Mac support?
(please don't say wine...)

I'd consider using this to support the upcoming kishsaver controller. My firmware is not based off of anything though.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 12 December 2013, 13:08:52
It is written in pure python.  It supports any platform that Python supports.

Edit for clarification:  Yes, Linux and Mac are supported.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: HaaTa on Thu, 12 December 2013, 13:34:32
Any chance you have the code in a Git repo (or other source control) somewhere? I want to avoid working off of zip files...and diffs
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 12 December 2013, 14:03:24
It is free (as in beer) but not currently open source.


Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Thu, 12 December 2013, 14:59:46
I am in the process of trying this.  I have Parallels Desktop running on my Mac, so I can run windows apps.  I can create the .hex on my windows machine without a problem.

The issue is when I try to use FLIP.  I am having a hard time getting past some of the driver issues on my Windows 7 VM.

I am considering trying to use CrossPack (http://www.obdev.at/products/crosspack/index.html) on my Mac and just reference the .hex file that was generated on my windows VM.

I am still in the process of figuring out the command line I need to do with avrdude to get it to work.

I think it should be:
avrdude -p m32u4 -c avrisp2 -P <device tbd> -U flash:w:my_layout.hex

The m32u4 is for: ATmega32U4
The avrisp2 is for: Atmel AVR ISP mkII (not sure about this one)  options shown here (http://www.nongnu.org/avrdude/user-manual/avrdude_4.html#Option-Descriptions)

I should be able to discover the keyboard, but I am not sure if I have to put it into bootmode to discover it.  I also need to confirm if 'avrisp2' is the correct option.  If I put my keyboard into bootmode and can't actually flash for some reason, how do I remove it from bootmode?
discover: avrdude -p m32u4 -c avrisp2 -P usb:xx -v

I will probably spend some time on this tonight to see if I can figure out how to flash it from my mac.  Any suggestions are welcome.  :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 12 December 2013, 15:14:09
I wouldn't bother trying to get Flip to work on a mac.  Probably you are on the best track using avrdude.

The HIDLib is definitely an ATmega32U4.  You definitely aren't using a AVRISPII, though.  You are using the DFU booloader.

If it is in boot mode, you can simply unplug it after the programing step has completed and it will start up in application mode.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 12 December 2013, 15:14:50
update: I just googled "dfu bootloader mac" and this came up: http://dfu-programmer.sourceforge.net/
perhaps that is what you need.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Thu, 12 December 2013, 15:28:22
update: I just googled "dfu bootloader mac" and this came up: http://dfu-programmer.sourceforge.net/
perhaps that is what you need.

That looks to be exactly what I need, I will give that a shot.  Thanks for being patient with the n00b.  :)

Edit: wow getting the libusb-1.0 paths/links/etc all sorted out on a Mac is REALLY annoying.  Still haven't cracked it.  :(
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: HaaTa on Thu, 12 December 2013, 15:30:02
Hmm, that would make me rethink using this for my own firmware.

I currently use cmake and support both AVR and ARM microcontrollers and losing the ability to get updates and make changes myself in the chance of your disappearance makes me wary.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Thu, 12 December 2013, 20:57:16
Here is my first attempt to use a .hex file generated on a Windows VM on my Mac and attempted to flash onto my HID.

$ dfu-programmer atmega32u4 flash ~/Desktop/tkl_numpad.hex --debug 2
     target: atmega32u4
    chip_id: 0x2ff4
  vendor_id: 0x03eb
    command: flash
      quiet: false
      debug: 2
device_type: AVR
------ command specific below ------
   validate: true
   hex file: /Users/swill/Desktop/tkl_numpad.hex

Error parsing the line.
Something went wrong with creating the memory image.

Not a lot to go on here...   The keyboard is still in bootmode, but the hex file I have apparently is not working.  Ideas???
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 12 December 2013, 21:08:44
Well, it seems unlikely that tool would use a different format than Flip does.  Perhaps you corrupted the file trying to get it off of your VM. Try the attached file.  It is a basic layout with App mapped to Fn and BOOT mapped to Fn+Esc.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 12 December 2013, 21:10:24
Hmm, that would make me rethink using this for my own firmware.

I currently use cmake and support both AVR and ARM microcontrollers and losing the ability to get updates and make changes myself in the chance of your disappearance makes me wary.

The Easy AVR USB Firmware is my own code, written in C.  The Python-based GUI is intimately tied to the C code.  It wouldn't have any use for your code.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Thu, 12 December 2013, 21:28:19
Well, it seems unlikely that tool would use a different format than Flip does.  Perhaps you corrupted the file trying to get it off of your VM. Try the attached file.  It is a basic layout with App mapped to Fn and BOOT mapped to Fn+Esc.

I was able to resolve my USB issues on my Windows VM and was able to flash my layout onto my keyboard using Flip.

If it will be helpful for you, I can try what you just sent to see if I have the same problem.  Not sure if it will be helpful other than to know if your hex files work with dfu-programmer. 

I will experiment with the files you sent this weekend.  I can hear my baby stirring so I probably don't have much more time tonight...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Mine on Fri, 13 December 2013, 06:06:45
this Software not can use to ghpad
[attach=1]
[attachimg=2]
[attachimg=3]
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: regack on Fri, 13 December 2013, 06:13:16
this Software can`t use to ghpad
(Attachment Link)

Not with that revision.  Not yet.  I will get the setup to metalliqaz so it can be supported.

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Thu, 19 December 2013, 18:38:32
I have been using this firmware as my daily driver with a HID Liberation Device in a Filco TKL.  Here is some feedback:
- The UI is AWESOME.  Very intuitive and works great.
- I have had some issues with the firmware.  Here are some...
-- I tried the SpaceFn concept and it did not work very well.  In normal typing I would end up hitting Fn keys all the time.  Also, it would sometimes miss actually registering a Space sometimes when I tapped.  I had to move away from space as a Fn key and change the Fn key to my Caps Lock key.
-- Without the space being a Fn key, I sometimes get two spaces when I hit the spacebar once.
-- Sometimes when I am typing in a form online, the keyboard stops registering keystrokes in the input field.  If I click into the url bar and type, it works and then I go back to the input field and it will type again.  I have no idea what is happening there, but that never happened with my Filco controller.

I am not sure that these issues are specific to the firmware or if there is an issue with my HID.  I am going to try the TMK firmware over the holidays to see if I get the same behavior.  I will start with trying the SpaceFn approach and if that does not work then I will go back to the Caps Lock as Fn approach.

My main use case right now is to have a numpad on my left hand home row.  I type IP addresses all the time and I wanted a way to type an IP address without having to remove my hand from my mouse.

Let me know if you have things you would like me to test or if you would like me to try to capture anything when I have issues. 
Notes:
- I am using the stable version of your firmware, not the beta version.
- I am on a Mac and I am using a Windows VM in Parallels to program the keyboard with Flip.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 20 December 2013, 11:58:54
-- I tried the SpaceFn concept and it did not work very well.  In normal typing I would end up hitting Fn keys all the time.  Also, it would sometimes miss actually registering a Space sometimes when I tapped.  I had to move away from space as a Fn key and change the Fn key to my Caps Lock key.

Ah-ha!  You have come across the great dilemma!  I could go on for pages about this issue.  Give TMK a try, and report back how you feel.  In my experience, I cannot use a configuration like that in regular usage.

I originally added the support for that stuff so I could implement Matias Half Keyboard (MHK).  The problem is that when Space is a Fn key, it can't immediately send a space, like normal keys.  It can only send a space when it has been pressed and un-pressed without being combined with another key.  That means that the system has to wait for the button-up before doing the space.  It also means that if you press space and another key at the same time, it has no choice but to assume you are combining keys.  Finally, you have to account for the case where you start a Fn+key combo, but then decide against it.  I did this alot with half-keyboard.  In that case, you don't want to send the space.  I was always pressing backspace to get rid of unwanted spaces.

So the algorithm is this:
Fn key goes down, nothing happens.
If another key goes down, and Fn is down, immediately send the Fn layer scancode
Fn key comes up:
    If a Fn layer key was pressed, do nothing
    Otherwise:
        If the space was held down for a long time, assume this is an aborted Fn combo and do nothing
        Otherwise, send space scancode real quick (this is a tap key)

When you are typing fast, you often press the next key before you've removed the last key.  That's very bad for the algorithm, because you will get the wrong layer.  There is no way around this.

Also, I have to choose a time duration for the length of a "tap" that indicates the user is pressing space and not aborting a Fn combo.

That timing is difficult to tune.  If you are hitting Fn keys by accident, it's because you are typing to fast.  I don't know of any way around this.  If you are not getting spaces when you want them, it probably means that the tap time is too short for you.  I did make it kinda short, because I find that it is better than getting spaces when you don't want them.

I'd love to hear your thoughts on this.  I may be able to make the tap timing configurable.

-- Without the space being a Fn key, I sometimes get two spaces when I hit the spacebar once.

That's called chattering.  I recently moved to a new debounce algorithm that supercharges response time, but seems to be a bit more sensitive.  You can increase the debounce value in the settings console.  Try setting it to 7 instead of 5.  It won't increase the response time but it should clean up any chattering.  If it still happens, set it to 9.  I have noticed some chattering on my Epsilon that never used to happen.  I will revisit the algorithm and increase the robustness by default.  I may have used a >= (greater-than-or-equal) where I should have used a > (greater-than)  It's overdue.

-- Sometimes when I am typing in a form online, the keyboard stops registering keystrokes in the input field.  If I click into the url bar and type, it works and then I go back to the input field and it will type again.  I have no idea what is happening there, but that never happened with my Filco controller.

Wow, that is strange.  Uh, hard to say what's going on.  Obviously, I use the Easy AVR firmware every day and I've never experienced that, but I could get out my Filco and upload the latest firmware to see what happens. (I am probably using an older version)  What do you think is happening?  Is the cursor getting moved out of the field?  I really don't know what to do with that one.

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 20 December 2013, 12:03:04
this Software not can use to ghpad

It worked on the first prototype.  If your board is different, it will need an update to the software to support it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Fri, 20 December 2013, 12:34:56
Re: SpaceFn - I will try TMK and see if it is any better just for a comparison.  This functionality is not required for me, but it would be interesting if it worked well.  I will have to play with it a bit more to get a real feel for how I think it could be tweaked.  I needed to get real work done last time I tried, so I just moved the Fn key so it did not disrupt my normal usage.

Re: Double Space - I will tweak the debounce settings to see if I can find a sweet spot for my typing style.  Thanks for pointing that out, I did not realize those settings where available.  :)

Re: Stopping typing - In this case, the cursor is still visible.  When I press a key, it flashes but does not write a character.  It really feels like it gets stuck some how.  The last time it happened I got the feeling that I had pressed a couple keys together/too quickly that caused the firmware to go into a state where it was not entirely sure what it was supposed to do.  I only run into this problem when I am either typing very quickly or I am using a Fn key and I chatter the Fn key as I am typing in the Fn layer.  In this case my Fn key is the caps lock key and it has; tap = caps lock toggle; hold = Fn.  By chatter I mean, I am holding the Fn key and typing but my finger slips on the Fn key so it comes up briefly and goes right back down as I am typing.

I am using your firmware on my daily driver right now, so I should be able to give you more feedback over the next little while.

Is there a way to enable logging of what commands the keyboard thinks it should be doing?  That could be pretty dangerous from a security perspective because it would technically be a keystroke logger, but it could be interesting to help me understand what is happening when I hit cases that I feel don't behave nicely...

I love the work you have done here.  It is dead simple to build great layouts.  I love that I can try something and tweak it a couple times in only a few minutes.  This is great for me as I try to establish solid solutions for the different use cases I am trying to work out. 

BTW, I forgot to link the image of my left hand numpad in the previous post, so I will post it now.
[attachimg=1]

Edit: Oh ya, I had a question...  I was expecting that Fn + Shift + 8 in the image above would register as Up.  That is not the case.  Are those secondary functions accessed through a different layer?  Maybe a numlock layer or something?  I would be curious about that because then I would have arrow keys on my left hand as well.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 21 December 2013, 00:01:22
I found that the debounce was 2 ms too quick, as I expected.  There will be a new beta soon.  I'm using it now and it's nice and smooth on my Epsilon.

With your issue, it may take some more discussion.  If you "fix" it by just re-clicking your mouse, then it can't be internal to the keyboard, because the mouse doesn't effect the keyboard at all.  If you had some strangeness with the Fn lock, then that might warrant some investigation.  I will also check the auto-key code for non-re-entrant code.  I actually don't use most of those features, so there could be a latent bug.  I'll try my own HIDLib controller also.

Unfortunately there is not currently a way to view "commands" in real time.  If it detects scan codes, it sends them to the computer, simple.  However, I'm thinking that I am going to create a test build that I've been planning.  It basically alerts the user to glitches by inserting an extra character.

For the shift-numpad thing, first use aqua key test to make sure you are getting real 10key codes for those keys.  If you are, then it's your PC's fault.  If not, it is a trivial fix.

edit: checked it on mine, it works for me.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: regack on Wed, 25 December 2013, 19:27:58
metalliqaz,  can you add a firmware profile for the updated GHpad? Let me know if you need more info than this:

       Col1     Col2    Col3    Col4
Row1    S1       S6      S11     S16
Row2    S2       S7      S12     S17/S171
Row3    S3       S8      S13     S18/S181
Row4    S4       S9      S14     S19/S191
Row5    S5/S51   S10     S15     S20/S201
Row6    S21/S211 S22     S23     S24

S1/NUMLOCK LED = PB2
S6 LED = PF7
S11 LED = PF6
S16 LED = PF5

ROW1 = PD0
ROW2 = PD1
ROW3 = PD2
ROW4 = PD3
ROW5 = PD4
ROW6 = PD5

COL1 = PF0
COL2 = PF1
COL3 = PE6
COL4 = PC7


Problem is there are a bunch of too many possible key configurations... I'm not sure how you would handle it in a layout editor, other than to allow people to pick the right keys for what they want from the overall field of 24 keys?

Like S21/S211, that's the 2x key on the bottom left, S5/S51 the 2x above that.  There are 4 possible positions for 2x keys going up the right side S20/S201, S19/S191, S18/S181, S17/S171. 

Quote
Show Image
(http://i.imgur.com/nbBEU2Tl.png)

 
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Wed, 25 December 2013, 19:32:30
Maybe you could shift click two keys to select both to denote that you are programming a two unit key?  Just an idea.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: regack on Wed, 25 December 2013, 19:50:05
Maybe you could shift click two keys to select both to denote that you are programming a two unit key?  Just an idea.

True, but you really only need to program the one key location, the other could be ignored, because there would be no key there.   People who cut off the bottom row would ignore all of the bottom keys entirely.  The tricky part is if the GUI is going to show all of the possibilities... and I'm not sure if it's doable with reasonable effort. 
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 25 December 2013, 20:46:04
I'll do it tomorrow.  I will try to think about how to make it more flexible.  Initially I can just make the 4x6. Users can just set both keys under a 2x1 to the same code and it will work with minimal thought.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Wed, 25 December 2013, 21:14:31
I'll do it tomorrow.  I will try to think about how to make it more flexible.  Initially I can just make the 4x6. Users can just set both keys under a 2x1 to the same code and it will work with minimal thought.

ya, thats a good place to start and pretty intuitive...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 26 December 2013, 17:32:17
Okay so it should already be working for the GHPad.  Just checked it, it's the same as Regack posted.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 26 December 2013, 18:09:04
Updated the release version and added the "Debug" version.  If you are testing or debugging, use the debug version.  It's the same as the release version, but it will type "*" when something unexpected happens.  It can expose problems in the matrix or keymap.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Soarer on Thu, 26 December 2013, 18:10:50
Oh ****, some **** just happened!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Melvang on Thu, 26 December 2013, 18:25:28
Replying so I can find this thread later.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Soarer on Thu, 26 December 2013, 18:33:10
Replying so I can find this thread later.

You can just click the 'Watch' button ;)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: regack on Thu, 26 December 2013, 20:01:39
Metalliqaz, it seems to be working with the current GHpad revision, I'll know for sure once I've fixed the 12 diodes that I put on backwards...  :-[
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 29 December 2013, 21:31:51
Regack,

I've made some progress.  The keymapper now allows you to select a base hardware config, then select one of any number of layouts.
[attachimg=1]

This is openly configurable by the user.  The PCBs that can be constructed with many layouts have .cfg files (eg. ghpad.cfg).  The mini language is described in cfg_file_help.txt

I have included a few layouts.  Any layout from your above diagram could be easily created in the .cfg file by just following my examples...
[attachimg=2]

It will be uploaded in a few minutes
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: regack on Mon, 30 December 2013, 07:34:03
Regack,

I've made some progress.  The keymapper now allows you to select a base hardware config, then select one of any number of layouts.
(Attachment Link)

This is openly configurable by the user.  The PCBs that can be constructed with many layouts have .cfg files (eg. ghpad.cfg).  The mini language is described in cfg_file_help.txt

I have included a few layouts.  Any layout from your above diagram could be easily created in the .cfg file by just following my examples...
(Attachment Link)

It will be uploaded in a few minutes

Wow, this is really fantastic - I'm going to play with it!  Thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Saviant on Mon, 30 December 2013, 19:43:41
Played with the new version of the software, liking it a lot. I have had no issues with my HID liberation device.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jdcarpe on Mon, 30 December 2013, 19:59:03
Works great on Phantom. It's easy to toggle through layers for me, since I assigned toggling Fn layer keys to my F-keys. You can try Dvorak, Colemak, etc. by switching layers.

Macros work great also, and are easy to configure.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: regack on Wed, 01 January 2014, 15:30:16
I'm getting some weird behavior with the beta and the GHpad...

1) numlock turns the LED on and off correctly to indicate its mode
     a) according to aquakeytest, the LED doesn't turn on/off
         1) the LED test in aqua doesn't turn the led on/off on the keypad either

2) numlock correctly changes from numbers to whatever-that-alternate-mode-is-called
     a) according to aquakeytest, the numpad numbers register as top-row and not numpad
          1) the Firmware Mapper UI says 'HID_KEYBOARD_SC_KEYPAD' for all of those keys...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 01 January 2014, 15:42:27
I'm getting some weird behavior with the beta and the GHpad...

1) numlock turns the LED on and off correctly to indicate its mode
     a) according to aquakeytest, the LED doesn't turn on/off
         1) the LED test in aqua doesn't turn the led on/off on the keypad either

2) numlock correctly changes from numbers to whatever-that-alternate-mode-is-called
     a) according to aquakeytest, the numpad numbers register as top-row and not numpad
          1) the Firmware Mapper UI says 'HID_KEYBOARD_SC_KEYPAD' for all of those keys...

This is explained in the FAQ in the OP.

Q. Why is my numpad is sending the wrong scancodes?
A.  Numpads come with Unlink Numlock enabled by default.  Disable that setting to get normal numpad scancodes.

I will extend the answer to cover the strangeness with the NumLock LEDs also.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: regack on Wed, 01 January 2014, 16:28:26
I'm getting some weird behavior with the beta and the GHpad...

1) numlock turns the LED on and off correctly to indicate its mode
     a) according to aquakeytest, the LED doesn't turn on/off
         1) the LED test in aqua doesn't turn the led on/off on the keypad either

2) numlock correctly changes from numbers to whatever-that-alternate-mode-is-called
     a) according to aquakeytest, the numpad numbers register as top-row and not numpad
          1) the Firmware Mapper UI says 'HID_KEYBOARD_SC_KEYPAD' for all of those keys...

This is explained in the FAQ in the OP.

Q. Why is my numpad is sending the wrong scancodes?
A.  Numpads come with Unlink Numlock enabled by default.  Disable that setting to get normal numpad scancodes.

I will extend the answer to cover the strangeness with the NumLock LEDs also.

Sorry, been so long since I actually READ the original post...  my bad.

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Thu, 02 January 2014, 14:19:55
I finally got around to upgrading to the beta and rebuilding my layout (would be nice to be able to import previous version layouts).

I changed my debounce settings and so far I have not had any issues.  It seems to have solved my debounce issue...

I spent some time figuring out the numpad issue I was having.  I basically wanted the ability to have the full ability of the numpad on my left hand.  I had to map a reachable key to the numlock key so I could switch between the numbers and the directional arrows without moving my hand.  It seems to be working pretty well so far.  :)

EDIT: Hmmm, I spoke too soon.  On my windows VM it works perfectly, but when I try to toggle the num lock on my mac I get the mac tone to say i am trying to do something wrong.  I wonder if it is because I have mapped it to the same key as 'command' on the mac and it doesn't like that.  I may have to try another key to see if that resolves this issue...

EDIT 2: It turns out that on Windows I did not have to unlink the hardware numlock on my TKL for it to work, but on the Mac I had to unlink the hardware numlock to get it to do what I wanted.  SOLVED...  :)

Here is my current setup:
[attachimg=1]
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: joneslee85 on Thu, 02 January 2014, 15:25:24
Dear

Is the GUI for mapping matrix and generating firmware only? Do you still need to use dfu-programmer to flash the controller?

And is this open source? I would love to help out on OSX port
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Thu, 02 January 2014, 15:30:16
Dear

Is the GUI for mapping matrix and generating firmware only? Do you still need to use dfu-programmer to flash the controller?

And is this open source? I would love to help out on OSX port

It is just a GUI for creating .hex files as well as modifying some in memory config options.  You still need dfu-programmer or Flip to flash the device and install the hex file.

It is free, but not open source. 
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 02 January 2014, 15:54:58
Thanks, Swill.

joneslee85, OSX is supported, but I don't have that OS so I can't test it.  What is the best way to distribute a Python tool for OSX?  If you are willing, I could use your help.

thanks
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Thu, 02 January 2014, 16:41:07
Thanks, Swill.

joneslee85, OSX is supported, but I don't have that OS so I can't test it.  What is the best way to distribute a Python tool for OSX?  If you are willing, I could use your help.

thanks

I am also interested in helping with OSX support.  I tried using the hex generated on Windows on my Mac using DFU and it failed (but that could have been the fact that it was the first time I had tried this and was very noob).  I have been using Flip on a Windows VM running on my Mac for programming my board recently.

re:Distribution to Macs, I think most people use py2app (http://undefined.org/python/#py2app), but I have never used it.  What libs are you using for building the UI?

Edit: I think I read somewhere that jdcarpe was using DFU on linux with your hex files, so maybe we could ask him to chime in with the DFU commands that people should know about for getting this to work.  I am sure others have used DFU and made it work, so maybe they could chime in with some examples of the command line sequence they used.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 02 January 2014, 18:50:48
I am also interested in helping with OSX support.

re:Distribution to Macs, I think most people use py2app (http://undefined.org/python/#py2app), but I have never used it.  What libs are you using for building the UI?

Great, I will try to make a nice OSX package.  I've been using py2exe for windows.

I tried using the hex generated on Windows on my Mac using DFU and it failed (but that could have been the fact that it was the first time I had tried this and was very noob).  I have been using Flip on a Windows VM running on my Mac for programming my board recently.

Edit: I think I read somewhere that jdcarpe was using DFU on linux with your hex files, so maybe we could ask him to chime in with the DFU commands that people should know about for getting this to work.  I am sure others have used DFU and made it work, so maybe they could chime in with some examples of the command line sequence they used.

I am confident that the .hex files are correct.  Unfortunately all my Unix/Linux systems are rack mounted and headless so I've never tried it and I don't have the commands.  The .hex files are text-based.  Perhaps you corrupted them while moving them to the other OS.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Thu, 02 January 2014, 19:18:43

I am confident that the .hex files are correct.  Unfortunately all my Unix/Linux systems are rack mounted and headless so I've never tried it and I don't have the commands.  The .hex files are text-based.  Perhaps you corrupted them while moving them to the other OS.

I fully expect that the problem was me, not your files. I was able to blow away a previous config, but I was unable to write a new config.  It would be nice if someone has done this on Linux or Mac to post the steps they did.

Hint hint, nudge nudge. Anyone?  :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Sun, 12 January 2014, 22:06:53
Qaz, wondering if this is possible somehow.  On my FC660C there is some really interesting functionality with the Esc key.

It basically works like this:
No modifier => Esc
Shift + Esc => ~ (so that behaves like it would on a normal keyboard)
Shift + Fn + Esc => `

Basically, I would like the Shift modifier to apply a different key to the Esc key.  Is this possible?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: dorkvader on Mon, 13 January 2014, 00:46:38
so odd shift behavior is an interesting concept. while it would be possible to have odd stuff like shift+h return "6" instead of the expected "H" most people simply want to do things like move semicolon around, or play with the behaviour of the tilde key.

What I propose, however, is instead set up a key as a function key, so map shift to function, and make fn+h  return "H". That way it behaves like a normal shift key in all cases.

Then change the offshifted things you want changed.

Now, clearly this has some issues: for example, you might have to set up a macro for every key on the shifted function layer (so that fn+h returns shift+h to produce H).

To get around that problem, it would be possible to just edit the firmware with a special shifted function key, to act as a normal shift in conjunction with most keys, and to do something different (as noted) for the few keys that need it. This would effectively change shift behaviour for (what I think to be) most cases.

Another option, and likely a better one if you are just changing a few keys around is to make the oddly-affected key the function key. Unfortunately this would mean that pressing esc (now fn) and nothing else would have to return an actual esc. The only way I can think of of doing this is to have the return stroke send esc: like what TMK firmware does with home row modifiers.

Finally, one could add this functionality as a separate (new) key (call it "swill's escape" I guess). this will implement the functionality you desire, but sadly is not really sustainable, as every new oddly shifted key would need a new entry in the keytable.

Just some thoughts about keybaords and using them.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Mon, 13 January 2014, 08:49:09

so odd shift behavior is an interesting concept. while it would be possible to have odd stuff like shift+h return "6" instead of the expected "H" most people simply want to do things like move semicolon around, or play with the behaviour of the tilde key.

What I propose, however, is instead set up a key as a function key, so map shift to function, and make fn+h  return "H". That way it behaves like a normal shift key in all cases.

Then change the offshifted things you want changed.

Now, clearly this has some issues: for example, you might have to set up a macro for every key on the shifted function layer (so that fn+h returns shift+h to produce H).

To get around that problem, it would be possible to just edit the firmware with a special shifted function key, to act as a normal shift in conjunction with most keys, and to do something different (as noted) for the few keys that need it. This would effectively change shift behaviour for (what I think to be) most cases.

Another option, and likely a better one if you are just changing a few keys around is to make the oddly-affected key the function key. Unfortunately this would mean that pressing esc (now fn) and nothing else would have to return an actual esc. The only way I can think of of doing this is to have the return stroke send esc: like what TMK firmware does with home row modifiers.

Finally, one could add this functionality as a separate (new) key (call it "swill's escape" I guess). this will implement the functionality you desire, but sadly is not really sustainable, as every new oddly shifted key would need a new entry in the keytable.

Just some thoughts about keybaords and using them.

It is very important that I maintain the majority of the shift behaviour. Stuff like shift+arrows to change selections are my bread and butter, so I can't afford to break that sort of functionality.  Not sure if that has implications for this concept.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 13 January 2014, 09:10:18
Anything is possible.  That kind of key is not currently possible but it could be added.

Right now the closest you can get is to map that key to an Esc and then map it to a grave key on the Fn layer

Then you would have this:
Esc = Esc
Fn+Esc = `
Fn+Shift+Esc = ~

That's close, but obviously not the same.  What I would do is create a new key, ESCGRAVE.  It would act like Esc unless Shift is pressed, then it would act like GRAVE.  I already do transformations like this in the code for virtual numpad.

Let me work on it for a bit.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Mon, 13 January 2014, 09:43:05
Anything is possible.  That kind of key is not currently possible but it could be added.

Right now the closest you can get is to map that key to an Esc and then map it to a grave key on the Fn layer

Then you would have this:
Esc = Esc
Fn+Esc = `
Fn+Shift+Esc = ~

That's close, but obviously not the same.  What I would do is create a new key, ESCGRAVE.  It would act like Esc unless Shift is pressed, then it would act like GRAVE.  I already do transformations like this in the code for virtual numpad.

Let me work on it for a bit.

Cool, ya I like this approach.  It seems pretty reasonable to me.  :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Mon, 13 January 2014, 11:03:21
I could just be really stupid but can anyone explain the macros to me? I know I write the macro in the box at the bottom of the screen and then bind the SCANCODE_M* key but I'm not sure how to actually do shortcut macros. I'd like to do half the layer as textual macro's and the other half for my Eclipse shortcuts, I'm assuming there is a way to get macros to do key shortcuts?

Stuff like: Alt + Shift + R

I'd do some trial and error to figure it out but i'm still waiting on my GH60's to arrive from China, if someone could break it down for me that would be great.

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 13 January 2014, 11:59:08
I could just be really stupid but can anyone explain the macros to me? I know I write the macro in the box at the bottom of the screen and then bind the SCANCODE_M* key but I'm not sure how to actually do shortcut macros. I'd like to do half the layer as textual macro's and the other half for my Eclipse shortcuts, I'm assuming there is a way to get macros to do key shortcuts?

Stuff like: Alt + Shift + R

I'd do some trial and error to figure it out but i'm still waiting on my GH60's to arrive from China, if someone could break it down for me that would be great.

If you haven't already read the macros help file, you should do so.

If you want a macro that presses Alt + Shift + R, then you would set it to this: \ALT(\SHIFT(r))

The general philosophy of the macro language is that you just put in a string of what you want the keyboard to type.  In addition to normal characters, there are non-printed characters and modifiers.  To summarize, there are three classes of stuff that can be in your macro strings:

Printable Characters: A B C 1 2 3 . + * ` ]
Non-printed Characters: \ENTER, \TAB, \PGUP,
Modifiers: \SHIFT() \LCTRL() \RALT()

Examples:
Ctrl-Alt-Del = \CTRL(\ALT(\DEL,))
USA = USA

(note that you don't have to put a \SHIFT() around USA to capitalize it, the macro processor is smart enough to do it for you)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Mon, 13 January 2014, 12:01:29
I could just be really stupid but can anyone explain the macros to me? I know I write the macro in the box at the bottom of the screen and then bind the SCANCODE_M* key but I'm not sure how to actually do shortcut macros. I'd like to do half the layer as textual macro's and the other half for my Eclipse shortcuts, I'm assuming there is a way to get macros to do key shortcuts?

Stuff like: Alt + Shift + R

I'd do some trial and error to figure it out but i'm still waiting on my GH60's to arrive from China, if someone could break it down for me that would be great.

If you haven't already read the macros help file, you should do so.

If you want a macro that presses Alt + Shift + R, then you would set it to this: \ALT(\SHIFT(r))

The general philosophy of the macro language is that you just put in a string of what you want the keyboard to type.  In addition to normal characters, there are non-printed characters and modifiers.  To summarize, there are three classes of stuff that can be in your macro strings:

Printable Characters: A B C 1 2 3 . + * ` ]
Non-printed Characters: \ENTER, \TAB, \PGUP,
Modifiers: \SHIFT() \LCTRL() \RALT()

Examples:
Ctrl-Alt-Del = \CTRL(\ALT(\DEL,))
USA = USA

(note that you don't have to put a \SHIFT() around USA to capitalize it, the macro processor is smart enough to do it for you)

Duh, I should have thought to look through the package for readme files! Your explanation is sufficient enough for the time being though, much appreciated  :thumb:
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 15 January 2014, 23:59:22
[attachimg=1]

Added the ESCGRAVE key in a new beta release
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Thu, 16 January 2014, 00:00:12

(Attachment Link)

Added the ESCGRAVE key in a new beta release

Cool. Ty. :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Euf0ria on Thu, 16 January 2014, 01:29:39
I´m so glad i found this thread! I have a Filco Majestouch 2 TKL and got a hold of a HID liberation controller and will try this out soon...probably I´ll go bananas on FN keys/layers to;)

Keep up the good work!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Thu, 16 January 2014, 08:13:47

I´m so glad i found this thread! I have a Filco Majestouch 2 TKL and got a hold of a HID liberation controller and will try this out soon...probably I´ll go bananas on FN keys/layers to;)

Keep up the good work!


With this same setup (with browns) I had to set my denounce to 9ms. Now everything works great. Just want to make sure that info was available.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Melvang on Thu, 16 January 2014, 20:29:41
So I am currently planning on using this to do the firmware for a hand wired matrix using a WYSE board to avoid having to modify the PCB at all.  Is there any suggestions on a starting point to get somewhat close to this?  The board I am working with is a WYSE 60 ASCII.

If not is there any way to add/remove/move keys around inside the program?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 16 January 2014, 22:27:07
So I am currently planning on using this to do the firmware for a hand wired matrix using a WYSE board to avoid having to modify the PCB at all.  Is there any suggestions on a starting point to get somewhat close to this?  The board I am working with is a WYSE 60 ASCII.

If not is there any way to add/remove/move keys around inside the program?

Well, it only supports the boards I programmed into it.  Merely adding or removing keys isn't enough to describe a matrix, LEDs, and a controller.  It's really beyond the scope of the project.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Melvang on Thu, 16 January 2014, 23:56:08
So I am currently planning on using this to do the firmware for a hand wired matrix using a WYSE board to avoid having to modify the PCB at all.  Is there any suggestions on a starting point to get somewhat close to this?  The board I am working with is a WYSE 60 ASCII.

If not is there any way to add/remove/move keys around inside the program?

Well, it only supports the boards I programmed into it.  Merely adding or removing keys isn't enough to describe a matrix, LEDs, and a controller.  It's really beyond the scope of the project.

Not a problem.  I understand.  I should probably learn how to make and flash a firmware anyway.  Just not sure where to start.  I tried when I was in the middle of my Phantom project and then I desoldered the switches and basically destroyed the board with my lack of de/solder skills.  But that project just grew into the brushed behemoth project I have going so I need to get that figured out.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Euf0ria on Sun, 19 January 2014, 13:54:57
How do I map other characters that does not exist on an ANSI layout like swedish Ĺ,Ä,Ö?
How can I switch layout to ISO with Big enter and 1x left shift?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 19 January 2014, 18:29:56
How do I map other characters that does not exist on an ANSI layout like swedish Ĺ,Ä,Ö?
How can I switch layout to ISO with Big enter and 1x left shift?

Not currently supported, mostly because I just have no experience with those kinds of boards.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Euf0ria on Mon, 20 January 2014, 01:47:01
How do I map other characters that does not exist on an ANSI layout like swedish Ĺ,Ä,Ö?
How can I switch layout to ISO with Big enter and 1x left shift?

Not currently supported, mostly because I just have no experience with those kinds of boards.

Ok, I see. 
Is this something you can consider to add, an ISO layout with its most common enter-key and so on?? I have the Bpiphany HID liberation controller up and running in a FILCO Majestouch 2 and would love to try it out for you and report back eventually errors.
The ISO layout also have all the special characters like {[]}/* and so on in different places but i guess i will be able to map these myself if I just get a layout with the main keys in the right place and size. (enter and the one left to "z" etc)

I´m new to all of this and think that your software feels like to right way to go. But, there´s always a but, If i cannot use it for my native Layout I must leave your fine software and start learning all coding the hard way and have no clue on where to start
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bpiphany on Mon, 20 January 2014, 04:57:22
The ISO and ANSI enter keys are actually wired to the same pins. The ANSI backslash key is the same as the one hiding out under the ISO enter key. The extra ISO key next to 'z' is truly an extra key. So that would need to be included in an ISO layout editor. It does of course not matter if it is included in the ANSI layout editor, it will just not be reachable.

Edit: Also, ĺäö for example are the same as the corresponding keys on the US layout. If there won't be a translation of the layout tool, you'll need to learn which is which.
Code: [Select]
Ĺ = {
Ö = ;
Ä = '
' = \
And the shifted result of key '6' and to the right of it are shifted on a Swedish compared to the US layout. Still the keyboard sends exactly the same instruction. It is the OS that decides what it means.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 20 January 2014, 09:03:02
I should clarify.  The ISO layout is definitely supported.  In fact, I think the Phantom already has it.  I will add it for the HID and we can try to get this working.

The next issue is the keys that aren't found on an ANSI board.  Some are certainly missing from my list, I'll look into that.  I think for the most part, that is merely an issue of not having a translation for the buttons, as bpiphany says.

Let's just pick a language and try to get that working.  Then a more generalized solution could be devised.  You were looking for Swedish?

Sorry I'm not so familiar with this stuff.  Being in the USA, I've never even seen one of these in person.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Euf0ria on Mon, 20 January 2014, 09:25:07
That sounds awesome metalliqaz! Yes the Language I´m personally searching for is Swedish. Below is a correct ISO swedish layout:
(http://hack.org/mc/images/KB_Sweden.png)

It´s interesting how "home blind" you get, I recently realized that there is many layouts used in different parts of the world and before I used to think there was only ISO and QWERTY. I guess you learn something new every day;)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: rindorbrot on Thu, 23 January 2014, 10:36:38
I wanted to try this firmware as well with my Frosty Flake.

I guess the ISO version has not been implemented yet as I can't select it and the "<>|" key doesn't work?

Also I have one problem:
when I have the "link win lock to scroll lock" active, the win-key lock LED on my QFR lights up (together with the scroll lock).
But when I unlink Win-lock and Scroll-lock and now hit Win-lock alone, then the win lock LED does not light up.
Would be cool if that could work, too.

Will there be an NKRO option in the future, like an Soarer's adapter or TMK?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 23 January 2014, 14:26:25
Work (RL) has been crazy lately but I'm going to add those ISO layouts soon.

Thanks for the bug report on the win-lock thing, I'll check it out.  I really appreciate this feedback because I don't have a QFR of my own to test it.

The NKRO thing is planned.  I just have never needed it so I didn't make it a priority.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: gojira54 on Thu, 23 January 2014, 15:50:02
If possible at some point a layout for ISO filco 105 key would be very much appreciated :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Thu, 23 January 2014, 15:56:50
Can this work in adjacent with soarers on a m122?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 23 January 2014, 16:23:18
If possible at some point a layout for ISO filco 105 key would be very much appreciated :)

I'm going to add ISO layout to all the keyboards that support it.

Can this work in adjacent with soarers on a m122?

That is not currently supported.  I haven't looked at that project at all.  Is it on a Teensy?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Thu, 23 January 2014, 16:24:37
If possible at some point a layout for ISO filco 105 key would be very much appreciated :)

I'm going to add ISO layout to all the keyboards that support it.

Can this work in adjacent with soarers on a m122?

That is not currently supported.  I haven't looked at that project at all.  Is it on a Teensy?

Its going to be on a pro micro, which is like a teensy (both use  ardunio and the code works the same) but cheaper.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: rindorbrot on Fri, 24 January 2014, 10:08:12
when I have the "link win lock to scroll lock" active, the win-key lock LED on my QFR lights up (together with the scroll lock).
But when I unlink Win-lock and Scroll-lock and now hit Win-lock alone, then the win lock LED does not light up.
Would be cool if that could work, too.

I should clarify this a bit I think.

If link scroll and win lock is enabled, the LED on F9 lights up the same way as the scroll lock LED.
If I only enable the win lock with a dedicated button (not via the scroll lock- link) the LED on F9 does not light up. It is basically only a second scroll lock LED at this point.

With scroll and win lock unlinked only the real scroll lock LED works as expected and the F9 LED does not work at all.


Another thing that I noticed:
The RAM macro seems to be limited to 40 characters, is the a design choice or an technical limitation?

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: gojira54 on Fri, 24 January 2014, 10:41:40
>I'm going to add ISO layout to all the keyboards that support it.

Nice... thanks for the effort :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 24 January 2014, 10:44:13
when I have the "link win lock to scroll lock" active, the win-key lock LED on my QFR lights up (together with the scroll lock).
But when I unlink Win-lock and Scroll-lock and now hit Win-lock alone, then the win lock LED does not light up.
Would be cool if that could work, too.

I should clarify this a bit I think.

If link scroll and win lock is enabled, the LED on F9 lights up the same way as the scroll lock LED.
If I only enable the win lock with a dedicated button (not via the scroll lock- link) the LED on F9 does not light up. It is basically only a second scroll lock LED at this point.

With scroll and win lock unlinked only the real scroll lock LED works as expected and the F9 LED does not work at all.


Another thing that I noticed:
The RAM macro seems to be limited to 40 characters, is the a design choice or an technical limitation?

Thanks for the more detailed report.  I should be able to fix that up without much trouble.

The RAM macro is limited to 40 characters, as noted in the help docs.  This is both a design choice and a technical limitation.  The RAM on the ATmega controller in your keyboard is very limited. (The buffer is larger in the Phantom, Epsilon, KMAC, etc.)  In order to keep all the features in the software, I had to greatly restrict the length of the buffer for the macro.  In truth, I don't consider it a big deal because of the options available.  Macros you want to keep can be programmed to flash with a limit that is 2 orders of magnitude larger, or you could use OS or Application based macro recording, which effectively have no limit on length.  I like to use the RAM macro for my password.  Program it when I turn on the PC, but it isn't saved to as place where it could be used without my knowledge.  This doesn't require much memory.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 26 January 2014, 09:15:15
Man, bonehead mistake on the Win Lock LED!  There wasn't any bug or anything like that, I just forgot to implement it!

New Beta version should be fixed now.  Next looking at ISO mappings.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: rindorbrot on Sun, 26 January 2014, 13:14:02
Man, bonehead mistake on the Win Lock LED!  There wasn't any bug or anything like that, I just forgot to implement it!

New Beta version should be fixed now.  Next looking at ISO mappings.

It works as expected now, thanks for the quick fix!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 26 January 2014, 14:06:49
Okay ISO layouts for all the costar boards...
(Buttons have to be rectangular, so the ISO enter is always going to look weird.)
[attachimg=1]

What I haven't done yet is the localization.  That will take some work...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Thechemist on Sun, 26 January 2014, 14:44:25
Man, bonehead mistake on the Win Lock LED!  There wasn't any bug or anything like that, I just forgot to implement it!

New Beta version should be fixed now.  Next looking at ISO mappings.

It works as expected now, thanks for the quick fix!

I have a qfr with a frosty also, using your easy avr vers.7 beta

Now when I hit scroll lock it automatically enables win lock and the F9 LED, I can click on winlock afterwards and disable it and the led.

Also numbers 1-9 show up as numberpad keys on http://www.keyboardtester.com/ I have also confirmed that using ALT+ number does ASCII code.  If I hold Shift + number the keyboardtester picks up numbers (R4 row), it also displays the !@#$%^&*() with shift.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 26 January 2014, 14:51:26
Man, bonehead mistake on the Win Lock LED!  There wasn't any bug or anything like that, I just forgot to implement it!

New Beta version should be fixed now.  Next looking at ISO mappings.

It works as expected now, thanks for the quick fix!

I have a qfr with a frosty also, using your easy avr vers.7 beta

Now when I hit scroll lock it automatically enables win lock and the F9 LED, I can click on winlock afterwards and disable it and the led.

Also numbers 1-9 show up as numberpad keys on http://www.keyboardtester.com/ I have also confirmed that using ALT+ number does ASCII code.  If I hold Shift + number the keyboardtester picks up numbers (R4 row), it also displays the !@#$%^&*() with shift.

Read the FAQ.  Those are custom features that can be turned off.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Thechemist on Sun, 26 January 2014, 15:06:36
Man, bonehead mistake on the Win Lock LED!  There wasn't any bug or anything like that, I just forgot to implement it!

New Beta version should be fixed now.  Next looking at ISO mappings.

It works as expected now, thanks for the quick fix!

I have a qfr with a frosty also, using your easy avr vers.7 beta

Now when I hit scroll lock it automatically enables win lock and the F9 LED, I can click on winlock afterwards and disable it and the led.

Also numbers 1-9 show up as numberpad keys on http://www.keyboardtester.com/ I have also confirmed that using ALT+ number does ASCII code.  If I hold Shift + number the keyboardtester picks up numbers (R4 row), it also displays the !@#$%^&*() with shift.

Read the FAQ.  Those are custom features that can be turned off.

Thanks, numlock is fixed now but still having problem with the winlock being enabled when i press Scroll Lock.

Edit: should have asked if you are planning to do scroll lock / winlock separate key in the future even though like you said it is useful for gaming.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 26 January 2014, 15:19:09
Scroll lock and winlock are separate keys. 

Winlock on Scroll lock setting = On: scroll lock key turns winlock on and off, winlock key turns winlock on and off
Winlock on Scroll lock setting = Off: only winlock key turns winlock on and off
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Thechemist on Sun, 26 January 2014, 15:26:24
Scroll lock and winlock are separate keys. 

Winlock on Scroll lock setting = On: scroll lock key turns winlock on and off, winlock key turns winlock on and off
Winlock on Scroll lock setting = Off: only winlock key turns winlock on and off

I would enable and disable that with the SCANCODE_DEBUG?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 26 January 2014, 15:29:45
Scroll lock and winlock are separate keys. 

Winlock on Scroll lock setting = On: scroll lock key turns winlock on and off, winlock key turns winlock on and off
Winlock on Scroll lock setting = Off: only winlock key turns winlock on and off

I would enable and disable that with the SCANCODE_DEBUG?

Yes.  Point your cursor at a text editor window, press SCANCODE_DEBUG, and do something like this:

Code: [Select]
Main Menu:
1) Config menu
2) Debug menu
3) Reset
9) Quit
> 1

Config Menu:
1) Toggle virtual num pad
2) Toggle win lock on scroll lock
3) Set default layer
4) Toggle swap caps lock and left ctrl
5) Toggle rollover bias
6) Set debounce time
7) Toggle unlink num lock
9) Back
> 2
Scroll lock will not affect win lock.

Config Menu:
1) Toggle virtual num pad
2) Toggle win lock on scroll lock
3) Set default layer
4) Toggle swap caps lock and left ctrl
5) Toggle rollover bias
6) Set debounce time
7) Toggle unlink num lock
9) Back
> 2
Windows key will be disabled when scroll lock is enabled.

Config Menu:
1) Toggle virtual num pad
2) Toggle win lock on scroll lock
3) Set default layer
4) Toggle swap caps lock and left ctrl
5) Toggle rollover bias
6) Set debounce time
7) Toggle unlink num lock
9) Back
> 9

Main Menu:
1) Config menu
2) Debug menu
3) Reset
9) Quit
> 9
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Thechemist on Sun, 26 January 2014, 15:31:19
Got it, thanks for the help.  :D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: rindorbrot on Sun, 26 January 2014, 17:33:02
Okay ISO layouts for all the costar boards...
(Buttons have to be rectangular, so the ISO enter is always going to look weird.)
I don't care how the enter key looks in the configurator as long as it works ;)
I will test the new build tomorrow.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 26 January 2014, 17:57:36
Okay ISO layouts for all the costar boards...
(Buttons have to be rectangular, so the ISO enter is always going to look weird.)
I don't care how the enter key looks in the configurator as long as it works ;)
I will test the new build tomorrow.

Haven't uploaded the new build yet.  Putting in mad overtime at work.  Hopefully tomorrow.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 26 January 2014, 18:12:47
That sounds awesome metalliqaz! Yes the Language I´m personally searching for is Swedish. Below is a correct ISO swedish layout:
Show Image
(http://hack.org/mc/images/KB_Sweden.png)


It´s interesting how "home blind" you get, I recently realized that there is many layouts used in different parts of the world and before I used to think there was only ISO and QWERTY. I guess you learn something new every day;)

Euf0ria, I can't even seem to find a mapping of scancodes to keys for those keyboards.  If you (or anyone else) can show me the scancode tables for internationalized keyboards, let me know.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Euf0ria on Mon, 27 January 2014, 01:22:43

Euf0ria, I can't even seem to find a mapping of scancodes to keys for those keyboards.  If you (or anyone else) can show me the scancode tables for internationalized keyboards, let me know.

I found this after a quick search but don´t know if it is what you are asking for:
http://www.libsdl.org/tmp/SDL/include/SDL_scancode.h

Is there a way to extract the scancodes from your own keyboard? If you have a guide on how to do it then i can extract the scancodes from my keyboard, it´s ISO UK layout but that doesn´t matter right as long as it´s ISO?
Sorry for my noob level of knowledge, I´m still trying to learning everything i can about this.

Edit: I also found this:
http://msdn.microsoft.com/en-us/library/ms894053.aspx
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bpiphany on Mon, 27 January 2014, 01:33:58
The scancodes are exactly the same as on every other keyboard, or it wouldn't fare well with any OSs.. The only extra bit on ISO keyboards is the key next to left shift. That is the one called NUBS in hasu speak, scancode 0x64 i believe.

The '* key is physically the same as the US \|-key.

I haven't read up on this mapper code but my layouts here (https://github.com/BathroomEpiphanies/costar_keyboard/blob/master/models/common.h) include all keys on the ISO and ANSI models. The extra keys on Japanese keyboard should probably fit into there somewhere as well, but I don't know which and where.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 27 January 2014, 07:31:53
The scancodes are exactly the same as on every other keyboard, or it wouldn't fare well with any OSs.. The only extra bit on ISO keyboards is the key next to left shift. That is the one called NUBS in hasu speak, scancode 0x64 i believe.

The '* key is physically the same as the US \|-key.

I haven't read up on this mapper code but my layouts here (https://github.com/BathroomEpiphanies/costar_keyboard/blob/master/models/common.h) include all keys on the ISO and ANSI models. The extra keys on Japanese keyboard should probably fit into there somewhere as well, but I don't know which and where.


Oh... right.  Man, now that you point it out it seems so obvious :facepalm:

Okay so we're ready to go, but localization will be a pain for me as an ignorant 'murican.

Euf0ria, or anyone else, I will provide a file that would need to be updated to get full localization.  Honestly, I don't even know how to type the Swedish symbols.  If you are willing, speak up!

Edit: ISO build is uploaded
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Euf0ria on Mon, 27 January 2014, 07:58:06
I can help you. Do you link the file here in the thread or do you prefer to send it by e-mail or a dropbox link? Please send me a PM if it's more approperiate.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: rindorbrot on Mon, 27 January 2014, 09:44:18
With the new ISO build everything works now for me. Thanks metalliqaz!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 27 January 2014, 10:49:12
With the new ISO build everything works now for me. Thanks metalliqaz!

Great!  Thanks for letting me know, I'm glad this thing gets some use. :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MJ45 on Mon, 27 January 2014, 10:57:04
With the new ISO build everything works now for me. Thanks metalliqaz!

Great!  Thanks for letting me know, I'm glad this thing gets some use. :)
Nice work!! Now the one's that are not into programing (like me) can make keyboard custom layouts easily, I'm hoping for a Mac version of this great keymapper. Thanks :thumb:
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 27 January 2014, 11:20:45
With the new ISO build everything works now for me. Thanks metalliqaz!

Great!  Thanks for letting me know, I'm glad this thing gets some use. :)
Nice work!! Now the one's that are not into programing (like me) can make keyboard custom layouts easily, I'm hoping for a Mac version of this great keymapper. Thanks :thumb:

It is already cross platform.  The problem with the Mac seems to be the programming.  Flip is windows-only.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MJ45 on Mon, 27 January 2014, 11:31:44
With the new ISO build everything works now for me. Thanks metalliqaz!

Great!  Thanks for letting me know, I'm glad this thing gets some use. :)
Nice work!! Now the one's that are not into programing (like me) can make keyboard custom layouts easily, I'm hoping for a Mac version of this great keymapper. Thanks :thumb:

It is already cross platform.  The problem with the Mac seems to be the programming.  Flip is windows-only.
I have a couple of Phantoms and I use the Teensy loader with Mac OSX to load the hex files onto the Teensy. Can your Easy AVR Keymapper be used on a Mac with the Teensy loader for Phantom?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 27 January 2014, 11:43:48
Sure thing.  I'll try to whip up a multi-platform package when I'm at home.  I'd appreciate an OSX screenshot when you get it working.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MJ45 on Mon, 27 January 2014, 15:22:42
Sure thing.  I'll try to whip up a multi-platform package when I'm at home.  I'd appreciate an OSX screenshot when you get it working.
That would be much appreciated when you have the spare time. I can do screenshots no problem. Thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Euf0ria on Sat, 01 February 2014, 13:14:04
With the new ISO build everything works now for me. Thanks metalliqaz!

Today i tested the new ISO 88 layout for the Filco MJ2 and have some initial errors to report, just some keymapping to correct i think, ok here it goes:
Im using swedish ISO in my OS...
The row for numbers all work with their normal keypresses (1,2,3, etc...) and everything also works with their Ctrl keypresses. But then, nothing works with their ALT keypresses.
Here´s whats supposed to be mapped to each number+ ALT : 1 none, 2 @, 3 Ł, 4 $, 5 €, 6 none, 7 {, 8 [, 9 ], 0 }, + \,

The  + sign being the key left to "0".


Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 01 February 2014, 13:58:01
Disable numlock or turn off Virtual Numpad.

I've got to stop making that the default on TKL boards.  Everyone thinks it's a bug...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Euf0ria on Sun, 02 February 2014, 13:07:45
Disable numlock or turn off Virtual Numpad.

I've got to stop making that the default on TKL boards.  Everyone thinks it's a bug...

Or maybe we users should read the manual a bit closer;)
I did another try today and got everything to work as i wanted. Now i just got to come up with some cool ideas on how to use my keyboard.
Again, thank you very much for adding ISO layout, you just saved me and other Europeans a huge amount of time not having to learn the code the hard way!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: geniekid on Tue, 11 February 2014, 08:30:18
Thanks for this awesome software.   :thumb:  I just flashed 2 Frosty Flakes on my QFR at home and my QFR at work.

Two problems I ran into:
1)  I couldn't swap the location of my Backspace and '\|' keys using the beta (20140127) but I was successful with the regular (20131226).
2)  I couldn't remap the HID_KEYBOARD_SC_APPLICATION to SCANCODE_FN using either version.  I had to remap HID_KEYBOARD_SC_RIGHT_GUI to SCANCODE_FN instead.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 11 February 2014, 08:51:42
Thanks for this awesome software.   :thumb:  I just flashed 2 Frosty Flakes on my QFR at home and my QFR at work.

Two problems I ran into:
1)  I couldn't swap the location of my Backspace and '\|' keys using the beta (20140127) but I was successful with the regular (20131226).
2)  I couldn't remap the HID_KEYBOARD_SC_APPLICATION to SCANCODE_FN using either version.  I had to remap HID_KEYBOARD_SC_RIGHT_GUI to SCANCODE_FN instead.

Thanks for the feedback!  I don't own a QFR so I rely on help from the community to be able to support that keyboard.  Let's get it fixed up!  Is this an ISO QFR, or US ANSI?  When you say you can't swap the location, does that mean that you are able to make it look right in the GUI but it doesn't work on the board, or does it mean that you can't even get it to work in the GUI?  What happens when you press the key?

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: geniekid on Tue, 11 February 2014, 09:28:11
Thanks for this awesome software.   :thumb:  I just flashed 2 Frosty Flakes on my QFR at home and my QFR at work.

Two problems I ran into:
1)  I couldn't swap the location of my Backspace and '\|' keys using the beta (20140127) but I was successful with the regular (20131226).
2)  I couldn't remap the HID_KEYBOARD_SC_APPLICATION to SCANCODE_FN using either version.  I had to remap HID_KEYBOARD_SC_RIGHT_GUI to SCANCODE_FN instead.

Thanks for the feedback!  I don't own a QFR so I rely on help from the community to be able to support that keyboard.  Let's get it fixed up!  Is this an ISO QFR, or US ANSI?  When you say you can't swap the location, does that mean that you are able to make it look right in the GUI but it doesn't work on the board, or does it mean that you can't even get it to work in the GUI?  What happens when you press the key?

US ANSI.  In all cases the GUI showed the right symbols.  With regard to the Backspace problem, I had one key mapped to Backspace and the other mapped to '\|', but after flashing the firmware both keys were interpreted as '\|'.  With regard to the Function problem, after flashing the firmware the normal Application key was interpreted as R-Alt instead of Function.  Changing R-Win (R-GUI) to Function, however, works just fine.

Let me know if you want more information or if you want me to experiment with anything.  I have a second QFR at home (also with a Frosty Flake), so I can even try to reproduce the problems I'm seeing later today if that would be helpful to you.

***UPDATE***
I tried this with my QFR at home.  Mapping Function to both R-Win or Application work just fine with the regular GUI.  I'm guessing one of my Frosty Flakes may have a defect but I can still do everything I bought it for so I will let this one slide.  I did notice that when I load the default QFR (Frosty Flake) layout using the beta GUI that it does not match an actual QFR layout - that may explain the backspace vs backslash problem.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Dreamre on Tue, 18 February 2014, 12:49:33
Work's flawlessly on my KMAC2.

Thank you!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 18 February 2014, 16:06:21
Hey everyone, sorry for the lack of updates.  I've been pulling lots of overtime at work.  I will continue to improve the beta version soon.

Great to hear Dreamre!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Fragil1ty on Wed, 19 February 2014, 17:18:52
Hey everyone, sorry for the lack of updates.  I've been pulling lots of overtime at work.  I will continue to improve the beta version soon.

Great to hear Dreamre!

Are these going to be for sale, please excuse me I'm a nub.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 19 February 2014, 17:28:56
It's free software, dude.  Various supported keyboards are for sale separately.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: naokira on Fri, 21 February 2014, 13:00:22
Hi. Can you make the new FaceU pcbs of spirit to be compatible? :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: KyesaRRi on Mon, 24 February 2014, 02:22:46
Hi!

Would it be possible to add support for the butterfly numpad?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 24 February 2014, 09:51:43
If they are using an ATmega32U4 or similar, then the answer is yes.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: xSpartanCx on Mon, 24 February 2014, 17:24:45
How would I set this to use a  locking caps lock key? I'd love for this to work so I don't have to figure out this really confusing TMK thing :P

Also, what does it mean by binding a key to boot mode?

Another question: How do I modify LED Brightness? (This is all for my phantom)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 24 February 2014, 19:54:44
Hmmm.  A locking caps lock key is not currently supported, but I think it would be easy to add.

You want to make a key for entering BOOT mode so that you can reprogram new code easily.  With your Phantom, if you didn't have a key to do it, you'd have to take your keyboard apart and press the Reset button on the Teensy.

LED brightness only takes effect on the backlighting.  I will try to add support for changing the brightness of the indicator LEDs.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: geniekid on Tue, 25 February 2014, 15:23:57
Thanks for this awesome software.   :thumb:  I just flashed 2 Frosty Flakes on my QFR at home and my QFR at work.

Two problems I ran into:
1)  I couldn't swap the location of my Backspace and '\|' keys using the beta (20140127) but I was successful with the regular (20131226).
2)  I couldn't remap the HID_KEYBOARD_SC_APPLICATION to SCANCODE_FN using either version.  I had to remap HID_KEYBOARD_SC_RIGHT_GUI to SCANCODE_FN instead.

Thanks for the feedback!  I don't own a QFR so I rely on help from the community to be able to support that keyboard.  Let's get it fixed up!  Is this an ISO QFR, or US ANSI?  When you say you can't swap the location, does that mean that you are able to make it look right in the GUI but it doesn't work on the board, or does it mean that you can't even get it to work in the GUI?  What happens when you press the key?

US ANSI.  In all cases the GUI showed the right symbols.  With regard to the Backspace problem, I had one key mapped to Backspace and the other mapped to '\|', but after flashing the firmware both keys were interpreted as '\|'.  With regard to the Function problem, after flashing the firmware the normal Application key was interpreted as R-Alt instead of Function.  Changing R-Win (R-GUI) to Function, however, works just fine.

Let me know if you want more information or if you want me to experiment with anything.  I have a second QFR at home (also with a Frosty Flake), so I can even try to reproduce the problems I'm seeing later today if that would be helpful to you.

***UPDATE***
I tried this with my QFR at home.  Mapping Function to both R-Win or Application work just fine with the regular GUI.  I'm guessing one of my Frosty Flakes may have a defect but I can still do everything I bought it for so I will let this one slide.  I did notice that when I load the default QFR (Frosty Flake) layout using the beta GUI that it does not match an actual QFR layout - that may explain the backspace vs backslash problem.

Just an update for anyone curious - ultimately this software (version 20131226) worked perfectly for my home QFR.  As for my work QFR, I noticed after awhile another problem where simultaneously pressing B and M would cause N to show up.  I went through the entire flashing procedure again but couldn't fix it.  Finally, I used Mooswa's fork (https://github.com/pa3zo6/costar_keyboard) of bpiphany's original firmware and modified it to create the same mappings as my home QFR (without the bootmode).  The BMN problem was resolved.

So basically one QFR works perfectly with this software and one doesn't, which doesn't really give a strong indication as to whether it's a software or hardware issue.  I'm willing to chalk it up to user error somewhere along the line on my part.  When the next stable version gets released, I'll give it another try.  Again, thanks for all this awesome work metalliqaz :thumb:
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: xSpartanCx on Wed, 26 February 2014, 17:50:47
Another thing to note: flashed the firmware (on the most recent beta version) and it did not seem to recognize my right shift key. Switched back to basic firmware, and the shift key works again. Not sure what's up, I can try the recent stable build if you'd like.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jdcarpe on Thu, 27 February 2014, 13:45:00
What does this mean?

(http://i.imgur.com/hcnwguA.png)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 27 February 2014, 15:34:54
That means I effed something up.... Or maybe that you tried to load an old save file with the new beta. (I had to make it backwards incompatible when I added the variable layouts)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: huttala on Thu, 27 February 2014, 15:39:58
First of, awesome job with this program, it makes my life much easier. :)

BUT it seems like right shift does not work with the new ISO 88 layout on my ISO 1.5x phantom board (It's an ISO 87 then I guess 3 bottons right of space and 3 left of space). Scroll lock works, but not print screen or pause break.
I've tried the right shift key with a new switch, manual wiring and I've checked if the switch works with an multimeter, everything seems fine but it just does not work.

And while I wrote this I tried the stock 88 ISO layout (from the deskthority wiki) and right shift seems to work, so it's absolutely an bug.

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jdcarpe on Thu, 27 February 2014, 16:19:07
That means I effed something up.... Or maybe that you tried to load an old save file with the new beta. (I had to make it backwards incompatible when I added the variable layouts)

I only used the "release" package from the OP. No older files or anything are on this machine. I don't have Windows at home anymore, so I had to dl it to my work PC. :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 28 February 2014, 07:44:52
That means I effed something up.... Or maybe that you tried to load an old save file with the new beta. (I had to make it backwards incompatible when I added the variable layouts)

I only used the "release" package from the OP. No older files or anything are on this machine. I don't have Windows at home anymore, so I had to dl it to my work PC. :)

Me then!  If I can re-create the problem I can fix it. Let me know what layout triggered the bug.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jdcarpe on Fri, 28 February 2014, 08:27:05
That means I effed something up.... Or maybe that you tried to load an old save file with the new beta. (I had to make it backwards incompatible when I added the variable layouts)

I only used the "release" package from the OP. No older files or anything are on this machine. I don't have Windows at home anymore, so I had to dl it to my work PC. :)

Me then!  If I can re-create the problem I can fix it. Let me know what layout triggered the bug.

It was the GH60 HHKB layout.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: huttala on Sun, 02 March 2014, 15:37:44
Any news on the ISO 88 layout and why the right shift + printscreen and pause/break buttons does not work?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 03 March 2014, 09:47:43
They will definitely be fixed.  I'm almost done with the heavy work commitments that have been preventing me from working it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: huttala on Mon, 03 March 2014, 13:29:33
They will definitely be fixed.  I'm almost done with the heavy work commitments that have been preventing me from working it.

That's awesome, thanks! :D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 06 March 2014, 09:00:47
Okay I've refactored the code and ported it to Python 3 in preparation for releasing a multi-platform src package so Linux and OSX users can join the party.  You will need either Python 2.7, 3.2, or 3.3 installed on your system.  I will still make the Windows exe version for those who don't want to bother with Python and Setuptools.

Next I'm working on the bugs that have been reported in thread.  Then I'm going to look at adding support for some new boards.

See y'all tomorrow!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Dreamre on Thu, 06 March 2014, 12:38:43
Great stuff! Your program makes everything so much easier for all of us :D. Thank you :).
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 10 March 2014, 23:17:19
New beta version uploaded.  Fixes Phantom Right Shift.  More fixes and new features coming soon!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Mon, 10 March 2014, 23:53:00
New beta version uploaded.  Fixes Phantom Right Shift.  More fixes and new features coming soon!
Dangit didn't see that was a thing. I lifted a pad thinking the switch was bad.

Although ... bizarrely enough I fixed it by jumping to the "ISO" position of the right shift, which I really though was the same switch position.

Thanks for keeping up with this ... it's a fun way to rearrange the keymap, in addition to being easier to make .hex files with.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 11 March 2014, 10:06:08
I'm really sorry to hear about that.  I wish I hadn't let that bug go for so long.  That is why I call it beta, though!

To the guy who's PrtScr and Pause buttons don't work, I can't reproduce that problem.  I think more information is needed.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 12 March 2014, 08:00:16
Uploaded new Beta.  Adds option to make a debug build, which would have prevented AKmalamute's mishap.  Also added a requested feature (Locking caps) and more ISO configs for Phantom.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 12 March 2014, 23:42:19
Few more bug fixes and moved the Beta to Release.  Seems to work well on my keyboards.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 16 March 2014, 19:08:36
Added new Beta with true NKRO for you animals that love to mash keys.  It does have a bug right now.  Once you get past 20 keys or so it loses track of what's going on.  I'll fix it before moving it to release.

[attachimg=1]
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: geniekid on Sun, 16 March 2014, 20:02:19
Added new Beta with true NKRO for you animals that love to mash keys.  It does have a bug right now.  Once you get past 20 keys or so it loses track of what's going on.  I'll fix it before moving it to release.

(Attachment Link)

What's the difference between "true" NKRO and what it is now?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: agodinhost on Sun, 16 March 2014, 20:48:40
... for you animals that love to mash keys...before moving it to release.
:eek:
LOL
ty man!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 16 March 2014, 21:11:30
Added new Beta with true NKRO for you animals that love to mash keys.  It does have a bug right now.  Once you get past 20 keys or so it loses track of what's going on.  I'll fix it before moving it to release.

(Attachment Link)

What's the difference between "true" NKRO and what it is now?

All previous versions have been 6KRO.  That is the standard USB keyboard protocol.  It can only send 6 keys at a time (plus 8 modifiers).
The NKRO has no 6 key limit.  If you want to hold down 10 keys at once, you can do so.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Dreamre on Mon, 17 March 2014, 22:00:19
I used the beta AVR firmware with my HID Liberation Device and it seems that numbers (1 to 0) during game play doesn't work (I try to use the number for an attack, but it doesn't do anything). Outside of the game, the number works fine. Could this be related to the software?

Thank you!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 18 March 2014, 06:52:32
See FAQ.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Dreamre on Tue, 18 March 2014, 18:06:30
See FAQ.

Fixed it, thank you very much.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 24 March 2014, 21:53:52
Updated the beta again.  Anyone using Bpiphany's controllers (Black Petal, Pegasus Hoof, Kitten Paw, Frosty Flake) should definitely upgrade.  There was a nasty memory corruption bug.

The ATmega32U2 used in those controllers is very constrained on RAM.  It only has 1KB (1024 Bytes).  Program data is allocated in RAM starting at the "bottom", towards the "top".  Dynamic memory, which you might think of as temporary data, is allocated at the "top" towards the "bottom".  On simple systems like the AVR it is up to the designer to ensure that the two never meet.  That's a challenge on such a small microcontroller.  I wasn't careful enough.

Diagnosing memory corruption from a stack overflow is NOT a fun task on a keyboard with no debugger, believe me.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 24 March 2014, 21:57:23
Diagnosing memory corruption from a stack overflow is NOT a fun task on a keyboard with no debugger, believe me.

Ahh who am I kidding?  For a nerd like me, that's the best way to spend a weekend. :p
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 25 March 2014, 00:02:04
Ummm... don't use the new beta version just yet... I'm pretty sure I built it wrong.  New update tomorrow.  Sorry.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 25 March 2014, 19:11:12
Ummm... don't use the new beta version just yet... I'm pretty sure I built it wrong.  New update tomorrow.  Sorry.

Alright all that has been fixed.  I've tried it on my Epsilon, Qazpad, Phantom, HID Liberation Device, KMAC, and Rosewill.  If I don't hear of any bugs, I will move today's beta version to Release.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: rindorbrot on Fri, 28 March 2014, 10:53:38
I have a bug/problem with beta 20140325.

On my Frosty Flake (ISO) I can't use the keyboard after I have played the RAM macro.
Only thing that works then is to play the RAM macro again.

I have to unplug and replug the keyboard to get it working again.
Doing a soft reset (with the boot button) does not fix this, it has to be physically unplugged.

I hope that is enough info for you to fix this, if not I'll try to be more precise.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Fri, 28 March 2014, 11:00:35
Possible to add support for Leeku 1800?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 28 March 2014, 11:34:37
I have a bug/problem with beta 20140325.

On my Frosty Flake (ISO) I can't use the keyboard after I have played the RAM macro.
Only thing that works then is to play the RAM macro again.

I have to unplug and replug the keyboard to get it working again.
Doing a soft reset (with the boot button) does not fix this, it has to be physically unplugged.

I hope that is enough info for you to fix this, if not I'll try to be more precise.

Thanks for the bug report!  I have no memory of trying that function so I probably didn't test it even though I did change that code (facepalm).  I think I know the cause.  I'll have it fixed tonight.  I also have updates for LED dimming that I haven't released yet.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 28 March 2014, 12:01:26
Possible to add support for Leeku 1800?

Like most of the Korean boards, it seems to use an ATmega microcontroller without the USB hardware.  A quick search of geekhack leads me to believe it uses the ATmega32A, like the A87.  My firmware requires the USB parts.  This is partly because I have no interest at all in supporting PS2.  It died of old age a few years ago.

There is a USB library for that part, however I haven't tried it.  I'm not so sure it would be possible to support both that and LUFA, which Icurrently use.  Does TMK support it?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Fri, 28 March 2014, 12:04:54
I don't think so.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 29 March 2014, 14:49:24
Updated the beta to fix the RAM Macro bug.  Also added LED dimming.

The ATmega32U2 devices are getting full... only 5 bytes of spare RAM. :(
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: rindorbrot on Sun, 30 March 2014, 10:33:40
RAM Macro now works as expected, thanks ;-)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Mon, 31 March 2014, 20:27:04
any chance to add support for the techkeys buisness card?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 31 March 2014, 20:38:34
I could easily support it, just don't have one to test.  Is there a schematic?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: whiskytango on Mon, 31 March 2014, 20:40:54
alright, I give up. How do you use the LED dimming? This means you can dim lock LEDs, right?

edit: nevermind, figured it out. I didn't think the dimmer scancode would also work for lock LEDs but I see that it does. Awesome! Thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Mon, 31 March 2014, 22:06:44
Trying to load the hex onto my qazpad

installed the drivers per flip's files

started up flip got all the way up to running the operations flow

only erase works, blank check, program, verify fails, error was could not read from USB device.

Any suggestions?

edit:

got it to erase, program, verify. when hitting start application getting could not write to usb device


I could easily support it, just don't have one to test.  Is there a schematic?

Not that I know of



EDIITTTT: IT WORKS!!!!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 01 April 2014, 06:55:35
Hmmm, very strange issues right there.  Sounds like you got it working, which is good.  I never experienced any issue programming the initial code.  Let me know if it keeps up.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Al3xG on Tue, 01 April 2014, 08:33:06
Hi metalliqaz :)
I have a problem with the latest version of your firmware and my kitten paw... When I hit the 'b', the keyboard send a 'b' and some 'n'. If I keep 'b' pressed, it prints only one 'b' and keep printing 'n'... It's very strange. The 'b' seems the only button affected.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 01 April 2014, 09:39:10
Hi metalliqaz :)
I have a problem with the latest version of your firmware and my kitten paw... When I hit the 'b', the keyboard send a 'b' and some 'n'. If I keep 'b' pressed, it prints only one 'b' and keep printing 'n'... It's very strange. The 'b' seems the only button affected.

Ooh, this is gonna be a good one. :P

(1) First off, does the 'n' key work correctly?

(2) Next try the latest release version from OP.  Does it still happen?

(3) Get version 2014.03.30 from OP, create a debug firmware. (this is identical to normal firmware, but will detect matrix problems by sending a '*' character).  Do you see any '*' characters while you type?

(4) Also, does the problem still happen with that beta?

(5) With Beta 2014.03.30, try forcing "basic keyboard" in the config console.  This reverts back to 6KRO.  Does it still happen?

If you get the extra 'n' after all 3 of those tests, then there is either a deep flaw with my Kitten Paw support, or your keyboard has a problem.  I don't have a Kitten Paw but I do have a Frosty Flake, which is similar.  I'll try it again.  I also need to check the Paw schematic when I get home.  Really need the answers to those 5 questions, though.

-d
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Al3xG on Tue, 01 April 2014, 10:11:51
Hi metalliqaz :)
I have a problem with the latest version of your firmware and my kitten paw... When I hit the 'b', the keyboard send a 'b' and some 'n'. If I keep 'b' pressed, it prints only one 'b' and keep printing 'n'... It's very strange. The 'b' seems the only button affected.

Ooh, this is gonna be a good one. :P

(1) First off, does the 'n' key work correctly?

(2) Next try the latest release version from OP.  Does it still happen?

(3) Get version 2014.03.30 from OP, create a debug firmware. (this is identical to normal firmware, but will detect matrix problems by sending a '*' character).  Do you see any '*' characters while you type?

(4) Also, does the problem still happen with that beta?

(5) With Beta 2014.03.30, try forcing "basic keyboard" in the config console.  This reverts back to 6KRO.  Does it still happen?

If you get the extra 'n' after all 3 of those tests, then there is either a deep flaw with my Kitten Paw support, or your keyboard has a problem.  I don't have a Kitten Paw but I do have a Frosty Flake, which is similar.  I'll try it again.  I also need to check the Paw schematic when I get home.  Really need the answers to those 5 questions, though.

-d

1 - Yes
2 - Yes
3 - Yes, when i push Right Arrow
4 - Yes
5 - I don't find 'basic keyboard' setting :D

With the original bpiphany fw, the problem disappear.
Thanks for the response ;)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 01 April 2014, 10:18:20
Okay don't worry about the basic keyboard thing.  The debug firmware tells me the root cause.  If you're getting the '*', then I don't have the matrix quite right.  I'll fix it tonight.  I don't have a kitten paw but I did have someone testing it for me a while back.  I don't know how we missed it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Al3xG on Tue, 01 April 2014, 10:28:06
Okay don't worry about the basic keyboard thing.  The debug firmware tells me the root cause.  If you're getting the '*', then I don't have the matrix quite right.  I'll fix it tonight.  I don't have a kitten paw but I did have someone testing it for me a while back.  I don't know how we missed it.

I tested the first versions for you, if you remember, but a that time I didn't see any problem.
However, thank you for the support ;)

ps: while I'm writing this, I've discovered that the key 'n' and 'k', if pressed simultaneously, print an * :)

pps: '/' key print an *.

ppps: in some cases, the 'n' key print an *.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 01 April 2014, 19:24:13
Okay so if you open the keymapper and look at the part where it shows you the Matrix Row and Col, you will see that all those keys are on Row 0.  I'm probably inadvertently activating another row at the same time.  I'm going to look into that.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 02 April 2014, 00:29:39
Al3xG, try the new 2014.04.01 build.

I was able to reproduce the problem on my Rosewill.  The matrix configuration was perfect, it appears the problem was timing.  I needed to leave more time for the strobe to settle.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Wed, 02 April 2014, 00:39:22
Just want to say this is the greatest software ever. I want to add it to all of my boards as its so easy to use yet so powerful.

Could it be possible to make your software work with soarer's code? So converting XT, AT etc scancodes into USB, but with your macros and layers? If so, that would be sooooooo sweet.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Al3xG on Wed, 02 April 2014, 02:57:58
Hi metalliqaz, sorry for the bad news but this update doesn't seem to work. The layout is completely messed, some keys don't work, some print *, some print other characters.

EDIT: now I'm using an older version of your fw (20131121) and it works pretty well, but if I press the 'b' key simultaneously with '6' or 'y' or 'u' or 'h' or 'j' or 'm', it prints the pressed letters plus an 'n'. I hope this could help you...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 02 April 2014, 07:24:02
Sorry dude, I was tired and I sent the software out with the wrong firmwares.  You had loaded the Black Petal code on your Kitten Paw.  I've updated the 2014.04.01 file, try re-downloading
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Al3xG on Wed, 02 April 2014, 10:36:03
Wonderful :)
Now all work correctly ;)
Thank you very much for this amazing firmware ;)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 02 April 2014, 12:05:40
Glad I finally got on top of that bug!  It's been there since the very first Epsilon release.

Just want to say this is the greatest software ever. I want to add it to all of my boards as its so easy to use yet so powerful.

Could it be possible to make your software work with soarer's code? So converting XT, AT etc scancodes into USB, but with your macros and layers? If so, that would be sooooooo sweet.

Glad you find it useful!  Unfortunately I don't see integration with Soarerverter code in the future.  The only thing that I could see would be a similar GUI front end for his binaries, but I just don't have the time to work it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Al3xG on Wed, 02 April 2014, 12:14:21
Metalliqaz, can I tell you a feature request?  ;)
Would be amazing if you add in your fw the possibility to set the keys as dual role... like this: http://geekhack.org/index.php?topic=41685.0
What do you think about?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 02 April 2014, 12:24:31
It already does that!  ...unless I'm not understanding you.

For example, I support the Matias Half-Querty layout by making the spacebar a Fn key.  When it is held, it acts like Fn.  When it is tapped, it sends a space.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Al3xG on Wed, 02 April 2014, 12:41:11
oohhh, thank you!  :)
I haven't seen that function... After reading the help files is all clear ;D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Wed, 02 April 2014, 18:58:37
How would one go about changing when the lock LEDs light up?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 02 April 2014, 19:46:43
How would one go about changing when the lock LEDs light up?

They are not configurable.  The goal of the project is to make a keyboard that is powerful, yet simple.  I do not know of a way to make open-ended LED configuration simple.

The Caps, Scroll, and Num locks are under the control of the host computer, per the USB HID spec.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Wed, 02 April 2014, 22:20:26
Okay, I remember reading up on changing the LEDs to show current layer on the Ergodox.

So I was wondering if something similar could be done where you could have an option in your GUI to replace either of the lock LEDs with current layer indication.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 02 April 2014, 23:59:15
The keyboard actually supports that, as there is a Layer Lock LED in the Qazpad.

The problem is really configuring it.  How would a user program an LED in a straightforward way?  Now, it might be possible to, say, add an option that swaps the one of the lock indicators with layer lock.  That might be possible.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 03 April 2014, 00:01:22
I just added more media keys to the code, in preparation for supporting the Techkeys card.  Apparently now you can have controls for brightness Up/Down in Windows 8, but I don't have any laptops with that OS.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Thu, 03 April 2014, 00:03:06
I just added more media keys to the code, in preparation for supporting the Techkeys card.  Apparently now you can have controls for brightness Up/Down in Windows 8, but I don't have any laptops with that OS.

sweet! Hope that brightness function works for win7 eventually
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 03 April 2014, 00:15:06
It never will. Its meant for portables, tablets and such
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Thu, 03 April 2014, 03:35:52
I can test the brightness thing,  I have win8 on one of my machines.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: 1pq on Sat, 05 April 2014, 15:20:06
The most current version does not seem to work with my JD40. The hex files it generated do not output anything, regardless of whether they're built in debug or normal mode. When I flash the original hex file back, it functions fine. I think the most recent version of the AVR mapper does't work with JD40s. Is there anything I could do to help you debug this issue?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 05 April 2014, 17:07:32
The most current version does not seem to work with my JD40. The hex files it generated do not output anything, regardless of whether they're built in debug or normal mode. When I flash the original hex file back, it functions fine. I think the most recent version of the AVR mapper does't work with JD40s. Is there anything I could do to help you debug this issue?

I should start classifying each type of hardware with a maturity rating.  The Smallfry KB (JD's 40%) has no testing whatsoever.  If you're willing to be my guinea pig, we should be able to get it working in no time.  It's probably something relatively simple.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 05 April 2014, 17:08:47
That reminds me, today I built that is quite possibly the most complicated Techkeys card firmware of all time.  I'm supposed to be getting one in the mail so I can test it, but early adopters are welcome to try it.  Just let me know.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Sifo on Sat, 05 April 2014, 23:03:02
^ Bring it
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Hak Foo on Sat, 05 April 2014, 23:19:53
What does SCANCODE_BASS_BOOST do, aside from turning my PC into an early 1990s Aiwa Walkman knock-off?  Is it only supported by some sound drivers/outputs, because it seems to make no difference in the sound coming out of my PC (from a Realtek onboard sound, via coax digital, to a reciever)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 05 April 2014, 23:48:53
Correct. Only supported by some output drivers.  Also, all the media keys are windows only.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 06 April 2014, 12:15:09
Okay, I remember reading up on changing the LEDs to show current layer on the Ergodox.

So I was wondering if something similar could be done where you could have an option in your GUI to replace either of the lock LEDs with current layer indication.

I'm starting to think I should make the LEDs programmable.  I kind of want that now myself.  I think I'm going to do it in two phases.  First the basic uses (caps, scroll, num) then more advanced options.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 07 April 2014, 00:32:58
Phase one almost complete...

[attachimg=1]
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Mon, 07 April 2014, 01:51:32
Yay! Which board has LED on F9?

I like the two phase approach. Right now, I don't believe and correct me if I am wrong there are any custom keyboards which support individual LED control right?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 07 April 2014, 07:22:23
It's the Quickfire Rapid.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: compgeke on Mon, 07 April 2014, 22:42:14
I seem to have found an issue with the Black Petal and the firmware. Every key works but if I hit the B key I get "bnn" and if I hold b I get "bnnnnnnnnn" and so on.

It only does this with this firmware, both the beta and latest release and not with the original firmware nor the original controller.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: geniekid on Mon, 07 April 2014, 23:44:10
I had a similar issue with my QFR + Frosty Flake where holding B and hitting M would cause N to be selected.  It only affected one of my QFRs, so I chalked it up to a bad FF or bad QFR, but then I was able to get it to work right with a modified version of bpiphany's firmware.  So I have zero idea where the fault lies.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 08 April 2014, 06:38:13
The cause is timing.  I just fixed that issue for Al3xG, and I was able to duplicate the problem on my Black Petal.

My firmware scans the matrix much faster than bpiphany's firmware.  Both of our codes have delays built into the scan to leave time to settle the probing lines.  The Easy AVR USB code has lots of features and therefore lots of work to do in every cycle.  Time is scarce, therefore I didn't initially have any busy-waiting during the matrix scan.

The bpiphany controllers run at 16MHz.  That works out to a period of 0.0625us.  bpiphany's code sets the probing lines and lets them settle for 1us before reading the matrix.  That works out to about 16 cycles of busy-wait.  My code was developed for the Epsilon and only used two cycles, which works fine for that hardware.  When Al3xG reported the problem with the Kitten Paw I increased the delay from 2 to 10 cycles, which solved it for his board and mine.  The 74HC42 decoders on your board must be really slow.

Generally I dislike the "slow it down until it works" solution.  Also I wish I knew why it is always the B and N keys that have the problem.  The arrow keys and the App key are also trouble spots.  They are all on Column 0.

Anyway, I will match bpiphany's settle time and rebuild it.  Will you report back if it works?  thanks
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: geniekid on Tue, 08 April 2014, 07:33:39
Interesting information :)

Yes, I will try out any new versions and report back!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: geniekid on Tue, 08 April 2014, 07:45:57
The cause is timing.  I just fixed that issue for Al3xG, and I was able to duplicate the problem on my Black Petal.

My firmware scans the matrix much faster than bpiphany's firmware.  Both of our codes have delays built into the scan to leave time to settle the probing lines.  The Easy AVR USB code has lots of features and therefore lots of work to do in every cycle.  Time is scarce, therefore I didn't initially have any busy-waiting during the matrix scan.

The bpiphany controllers run at 16MHz.  That works out to a period of 0.0625us.  bpiphany's code sets the probing lines and lets them settle for 1us before reading the matrix.  That works out to about 16 cycles of busy-wait.  My code was developed for the Epsilon and only used two cycles, which works fine for that hardware.  When Al3xG reported the problem with the Kitten Paw I increased the delay from 2 to 10 cycles, which solved it for his board and mine.  The 74HC42 decoders on your board must be really slow.

Generally I dislike the "slow it down until it works" solution.  Also I wish I knew why it is always the B and N keys that have the problem.  The arrow keys and the App key are also trouble spots.  They are all on Column 0.

Anyway, I will match bpiphany's settle time and rebuild it.  Will you report back if it works?  thanks

My problem with the Frosty Flake is fixed with the latest beta release - 20140403, so slowing it to 10 cycles was adequate for me.  Could this be a customizable setting?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 08 April 2014, 07:53:25
It certainly could be, but it really isn't necessary.  I will probably give it a tiny bit of extra margin and just leave it there.  It doesn't hurt anything.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 08 April 2014, 09:00:35
compgeke, the 20140403 code fixed the issue for me, Al3xG, and geniekid.  Are you sure you've tried that version?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: compgeke on Tue, 08 April 2014, 09:08:05
I'm fairly certain I did. I'll try again this evening when I can get back inside to trip the reed switch.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 08 April 2014, 12:05:29
Back inside? I hope you aren't taking it apart, you can use a magnet on it from outside.  Also you can program a boot key.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: compgeke on Tue, 08 April 2014, 14:06:04
Whoops, I meant back inside the house to get the magnet I've been using, don't have one powerful enough here at school. At the time of writing I was already outside and the house locked up.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: compgeke on Tue, 08 April 2014, 14:43:10
Managed to find a magnet I could use and now it's working after flashing again with the beta. Not sure what went wrong last night.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: geniekid on Tue, 08 April 2014, 16:50:13
Yay!  Beers all around!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Masterchief79 on Wed, 09 April 2014, 08:30:03
So I didn't read through the whole thing, so forgive me if this is a stupid question, but can I use this software to program a Teensy 3.0 powered keyboard? Since the 3.0 is ARM and not AVR based as far as I know?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 09 April 2014, 09:28:19
Nope, sorry.  It's written for AVR.  I probably won't have an ARM version until I own a keyboard with that architecture myself.

We are still in a time where AVR is the dominant architecture on the custom boards, although I think we will see that change this year.  Already the Trik PCB uses ARM and I'm sure more will follow.  The features that enthusiasts want are evolving fast and the AVRs are just not powerful enough to keep going.

I'm not sure if the community will settle on a preferred chip.  If that doesn't happen, then a tool like Easy AVR USB for ARM would be unlikely, I'm afraid.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Thu, 10 April 2014, 21:10:29
Looking through the scancodes, I see I can do Fn layers from 1-9, but nothing that goes back to default

also what happens if I go to a layer with nothing in it? Is it a dead end and I have to unplug and replug in the cable?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 10 April 2014, 23:21:05
Looking through the scancodes, I see I can do Fn layers from 1-9, but nothing that goes back to default

If the Fn key is set to normal mode, then you go back to default when you let go of the key.  If the Fn key is set to Toggle, you go back to default when you press it again.

also what happens if I go to a layer with nothing in it? Is it a dead end and I have to unplug and replug in the cable?

If you toggle to a layer with nothing on it, you're stuck.  It's good practice to always map your Fn key to the same key on the target layer that it activates.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 10 April 2014, 23:23:09
The old beta version has been tested a bunch.  I moved it to the release slot.  Added a new beta: programmable LEDs and support for the Techkeys Card.

Squeezing that full-featured keyboard firmware into the Techcard was quite an exercise.  :eek:
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Thu, 10 April 2014, 23:53:12
I see

Downloading the beta, cant wait to program the techkeys card! Will post results tomorrow
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Fri, 11 April 2014, 07:27:23
Will test LED function
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 11 April 2014, 17:46:48
I've got to decide what should be mappable to the LEDs.

There are the standard HID indicators:
NUM_LOCK
CAPS_LOCK
SCROLL_LOCK
COMPOSE
KANA

Then there's the extra indicators:
WIN_LOCK
FN_LOCK

All those are already working.  Other than that, the only thing that's coming to mind is to add an option to make it act like a backlight.  Any ideas?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Fri, 11 April 2014, 20:09:55
What is COMPOSE and KANA?

I haven't had a chance but with FN_LOCK can one choose the layer?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 11 April 2014, 21:09:18
They are standard modes for some non-US keyboards.  Like if you take a look at the HHKB japan layout, it has a Kana key.

The FN_LOCK is true if any layer other than the default layer is locked/toggled.  So that means any Fn key at all.  I hadn't considered one for individual layers, but I suppose that's possible.  I figured it wasn't necessary since there isn't exactly a multitude of LEDs available on most keyboards.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Photoelectric on Mon, 14 April 2014, 15:19:56
Reprogrammed a KMAC2--works great!  Only can't figure out how to change Debounce settings.  Searched this thread and found mention of something called "Settings Console" but don't know how to reach it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 14 April 2014, 15:36:30
Reprogrammed a KMAC2--works great!  Only can't figure out how to change Debounce settings.  Searched this thread and found mention of something called "Settings Console" but don't know how to reach it.

I really need to make a HOWTO video.

1) Create a firmeware with a key set to SCANCODE_CONFIG (Fn layer strongly suggested), and program it to your board.
2) Point your cursor to a text editor such as Notepad, or even Microsoft Word if you want.
3) Press the config key.
4) The keyboard will auto-type a menu as if you were in a command prompt.
5) Use the number keys to navigate the menus and change your settings.
6) Remember to exit config mode before you leave Notepad!!

It's a very simple system, so it only recognizes things like 9<enter> or 12<enter>.  Just be patient with it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Photoelectric on Mon, 14 April 2014, 15:46:11
That is very cool!  Done, thank you!  I had been looking forward to trying your firmware, and it's as good as I had anticipated :D  Thank you for your hard work!
(One thing I noticed that did not change is that I set Pause as the Boot Mode key, but it still requires pressing Caps Lock while plugging in the mini USB to enter bootloader for Flip.  Unless I misunderstood what Boot Mode key does).
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 14 April 2014, 15:55:40
That is very cool!  Done, thank you!  I had been looking forward to trying your firmware, and it's as good as I had anticipated :D  Thank you for your hard work!
(One thing I noticed that did not change is that I set Pause as the Boot Mode key, but it still requires pressing Caps Lock while plugging in the mini USB to enter bootloader for Flip.  Unless I misunderstood what Boot Mode key does).

I will check my KMAC2 when I get home but I've never had trouble with it.  Perhaps you were using it wrong?  The boot mode key doesn't work by holding it down when you plug it in.  You just press it when the keyboard is up and running.  You can go in and out of boot mode as much as you want without ever unplugging it.  (leaving boot mode is done with Flip)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Photoelectric on Mon, 14 April 2014, 15:59:00
Oh I see!  Well, it's more of a pedantic point I guess. It still gets programmed fine by holding Caps Lock and plugging in the cable too.  The person who owns this KMAC probably won't be doing much reprogramming anyway.  Oh yeah, and debounce value of 9 is perfect for the linear switches I put in  :thumb:  Feels very accurate when typing.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 14 April 2014, 16:11:04
Agreed and I think I will remove the nag window for the BOOT key when building for KMAC.  I wanted to prevent people having to take apart their boards to hit the bootloader switch, on Phantoms for example.  But on KMAC that danger is not there.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 18 April 2014, 11:40:14
Updated the beta again with more settings to allow control of the timing of the keyboard:

Code: [Select]
Timing Menu:
1) Set debounce time
2) Set max hold time for tap
3) Set max delay time for double tap
4) Set base mouse movement
5) Set mouse movement multiplier
9) Back
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 21 April 2014, 08:22:53
Took a page from the Korean playbook and added a scancode picker.  Now non-standard scancodes can be assigned a little bit easier without having to use the drop-down menu.
[attachimg=1]
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: geniekid on Mon, 21 April 2014, 14:21:04
Now it will only take me 45 seconds instead of a 60 seconds to setup my layout from scratch!  My work QFR is in the middle of plate switch, but I will use the new beta on my home QFR and test the hell out of the WASD1234 keys ;)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Melvang on Tue, 22 April 2014, 00:58:23
Took a page from the Korean playbook and added a scancode picker.  Now non-standard scancodes can be assigned a little bit easier without having to use the drop-down menu.
(Attachment Link)

Just wondering but what are "M"keys?  Macros?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Tue, 22 April 2014, 01:01:38
Took a page from the Korean playbook and added a scancode picker.  Now non-standard scancodes can be assigned a little bit easier without having to use the drop-down menu.
(Attachment Link)
Just realized theres mouse control. Time to test out a gamepad with integrated mouse :p
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 22 April 2014, 07:35:08
Took a page from the Korean playbook and added a scancode picker.  Now non-standard scancodes can be assigned a little bit easier without having to use the drop-down menu.
(Attachment Link)

Just wondering but what are "M"keys?  Macros?

Yes
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Chemoletter on Wed, 23 April 2014, 12:28:51
hi,
tested the program but with  PHANTOM ISO88 did't find my beloved german "ä", "ü", and "ö" keys and couldn't map the order of special characters properly. now i know that i did something wrong but i dont't know what. can you help?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 23 April 2014, 13:06:21
hi,
tested the program but with  PHANTOM ISO88 did't find my beloved german "ä", "ü", and "ö" keys and couldn't map the order of special characters properly. now i know that i did something wrong but i dont't know what. can you help?

Hi, thanks for checking out Easy AVR USB!

First, I need to know what you mean by "couldn't map the order of special characters properly".  What is "the order"?

On to the main issue: internationalization.  Several pages ago, there was a discussion of international layouts.  I'm in the USA, and I have never used any other kind of keyboard.  I didn't add any GUI support for foreign languages.  However annoying that may be for you as a German, it shouldn't interfere with the operation of the keyboard.  Try programming the default ISO88 layout to the board.  It is QWERTY, but "Y" should be interpreted as "Z" by your computer.  ";" should become "ö", and so on.

Based on my understanding of international keyboards.  That should work.  Making the GUI speak German would then just be a matter of convenience.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Photoelectric on Thu, 24 April 2014, 13:08:17
Is it possible to add an 87-key "Winkey" KMAC layout?  I have one with me that I'd like to program, but only 84- and 86-key templates are available.

Nevermind--just found that the 87-key layout is available in the Beta version  :thumb:
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 24 April 2014, 13:18:31
Is it possible to add an 87-key "Winkey" KMAC layout?  I have one with me that I'd like to program, but only 84- and 86-key templates are available.

Nevermind--just found that the 87-key layout is available in the Beta version  :thumb:

It's called <All keys>.  However I also already added "ANSI-87" to the Beta, because I realized that it is confusing.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 24 April 2014, 13:18:57
ooh, ninja'd :P
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Chemoletter on Sat, 26 April 2014, 06:48:40
sorry matalliqaz, haven't checked here early enough. as soon as i have the time, i'll go with the ISO88 like you said and just set my media keys.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Sat, 26 April 2014, 22:22:22
So, according to file modification dates, somewhere mid-feb. I made a Phantom layout with dvorak and qwerty, on differing layers.

Now that the latest version has a nifty 'picker' I thought I'd re-examine the .dat file and examine whatever it was I was working on.

It turns out I had a late-march edition of the easy keymapper, and it refused to load the .dat file claiming "insecure pickle" -- updating to the latest beta gave me the picker, but didn't change the error message.

I don't have the .dat file here so I couldn't upload it before Tuesday but ... what kind of a pickle am I in? (aside from an insecure one, I mean)

It's probably not a lot of work lost but its odd that I can't re-load it from so recent an edition of your software.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 26 April 2014, 23:03:28
Well that's bizarre.
Pickle is a data persistence module in python.  I use it to save all the data structures that define the layout.  I'll have to look into it.  If you can send the save file, that would help.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Tue, 29 April 2014, 11:41:02
Attached is the insecure string pickle. But, what if I wanted block pickle, or something...? Hmm.
[attachurl=1]
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: xSpartanCx on Mon, 05 May 2014, 22:11:19
Any plans for support for indicator LED dimming on the phantoms?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 05 May 2014, 23:53:50
Any plans for support for indicator LED dimming on the phantoms?

It already supports that.  The BL_DIMMER key will also dim the lock LEDs
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: xSpartanCx on Thu, 08 May 2014, 17:51:11
Any plans for support for indicator LED dimming on the phantoms?

It already supports that.  The BL_DIMMER key will also dim the lock LEDs

Oh, I didn't realize that! Thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: CPTBadAss on Fri, 09 May 2014, 07:37:25
Yesterday I discovered that this firmware has breathing mode. I plugged in the Techkeys business card that I'm using as an LED tester and I thought I broke the LED somehow. It was just breathing mode  :))

Looking forward to seeing how I can turn that business card into something useful :D.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Sifo on Sun, 11 May 2014, 05:07:24
Yesterday I discovered that this firmware has breathing mode. I plugged in the Techkeys business card that I'm using as an LED tester and I thought I broke the LED somehow. It was just breathing mode  :))

Looking forward to seeing how I can turn that business card into something useful :D.

Let me know if you figure something out, mine is just sitting here doing the lightshow.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 11 May 2014, 07:07:26
Only useful thing I could think of is a macro player.  Like 40 chars of random password in your pocket
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: xSpartanCx on Sun, 11 May 2014, 12:04:47
Well I tried the BL Dimmer and the indicator LED are still blindingly bright.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 11 May 2014, 16:27:23
Well I tried the BL Dimmer and the indicator LED are still blindingly bright.

Did it do anything at all?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: xSpartanCx on Sun, 11 May 2014, 19:33:03
Well I tried the BL Dimmer and the indicator LED are still blindingly bright.

Did it do anything at all?

All it did was brightened them :/
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: esko997 on Sat, 17 May 2014, 21:59:34
Hey all,

Got to say thanks to Metalliqaz for this awesome software.

Also, I cant seem to find main.py -- where is it? Sorry if this is an obvious question but I just cant seem to find it. Any help appreciated.

Thanks,

Esko997

EDIT: Nevermind, managed to get the beta version working with Wine -- thanks for this awesome software!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: rosslerosa on Sun, 18 May 2014, 10:51:15
This is awesome!
Any news if this will work with Red Scarf II?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 18 May 2014, 12:02:43
This is awesome!
Any news if this will work with Red Scarf II?

RedScarf uses the ATmega32U4, so I could.  However I don't own the hardware to do the development.  If I can get my hands on one, I'll make it happen.  Looks like it has some cool layout options.  Obviously all of them would be supported.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Flamingchook on Wed, 21 May 2014, 02:45:23
Thank you thank you thank you!!!!

This is such an amazing tool. Got my Kitten Paw installed in my Filco and this has made it so easy to get the function layer of my dreams! I did spend a few frustrating hours trying to figure out how to get the drivers for FLIP to work before realizing that I had to get into boot mode first *feels like an idiot*.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Vibex on Thu, 22 May 2014, 19:11:25
I just tried to run the multiplatform version, and got this error. :(
Code: [Select]
Traceback (most recent call last):
  File "main.py", line 10, in <module>
    from keymap.gui import GUI
  File "/home/vibex/Downloads/Easy_keymap_multiplatform_20140420/keymap/gui.py", line 22, in <module>
    from tkinter import *
ImportError: No module named tkinter
I'm still new to python (mostly work in AHK and java) did I **** up, or is it a bug?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 22 May 2014, 19:48:32
Your python installation doesn't have tkinter.  Youre on Linux?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Vibex on Thu, 22 May 2014, 20:01:15
Your python installation doesn't have tkinter.  Youre on Linux?
Yeah. I'm on sabayon, I'm updating now to see if it fixes anything.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 22 May 2014, 20:21:27
You need another package. Probably called py-tk or python-tk or pytkinter or something like that.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Vibex on Thu, 22 May 2014, 20:25:09
You need another package. Probably called py-tk or python-tk or pytkinter or something like that.
I figured it out. There is a tkinter use command I didn't see.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 24 May 2014, 11:50:18
Someone on DT let me know that you couldn't use Alt+codes in macros.  Updated beta version to fix it.
So to make a copyright symbol '©', this will now work: \ALT(0169)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: codyeatworld on Sat, 24 May 2014, 12:21:58
Heya, I've been wanting to give this firmware a try. I think I'm gonna use this for my KMAC since its multiplatform and I'm on mac os x.

I'm just wondering if the keyboard works in bios with this firmware?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 24 May 2014, 12:33:52
I'm able to use it to navigate the bios on my laptop.  I've had some reports of problems on Macs.  I don't own any macs so I can't try it.  If you have problems you can disable the NKRO interface to get a plain old USB HID keyboard which is very compatible with everything.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: xSpartanCx on Sat, 24 May 2014, 17:08:18
Is there any way to get my number keys to not  be recognized as being pressed on the number pad on my phantom? It seems as if the software is changing HID_KEYBOARD_SC_# to HID_KEYBOARD_SC_KEYPAD_# upon build or something :/
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Sat, 24 May 2014, 18:25:46
Is there any way to get my number keys to not  be recognized as being pressed on the number pad on my phantom?
I believe it's in 'qaz FAQ but ... there's two ways. Either make the 'num_lock' be a button you can press (say, a few layers down so that a 'pause->F12->delete' combo toggles the number-lock state) or you could use a second keyboard long enough to toggle the numlock with its' dedicated button.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 24 May 2014, 19:18:06
Is there any way to get my number keys to not  be recognized as being pressed on the number pad on my phantom?

Answer lies in the FAQ.  Turn off NumLock or disable virtual numpad.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: xSpartanCx on Sun, 25 May 2014, 15:31:53
How do I disable virtual numpad?

EDIT: Found it, nevermind.
Thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: codyeatworld on Sun, 25 May 2014, 18:50:04
I'm able to use it to navigate the bios on my laptop.  I've had some reports of problems on Macs.  I don't own any macs so I can't try it.  If you have problems you can disable the NKRO interface to get a plain old USB HID keyboard which is very compatible with everything.

Cool, I'm gonna give it a shot right now.

I run two custom machines, one dual boot, one triple boot. So I need to select the OS on boot.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: codyeatworld on Sun, 25 May 2014, 19:45:47
Error when running main.py in mac os x, will try it in windows next time I boot into it.

Code: [Select]
17:37 Easy_keymap_multiplatform_20140403% python main.py
Traceback (most recent call last):
  File "main.py", line 12, in <module>
    GUI(sys.path[0]).go()
  File "/Users/codyeatworld/Downloads/Easy_keymap_multiplatform_20140403/keymap/gui.py", line 141, in __init__
    self.creategui()
  File "/Users/codyeatworld/Downloads/Easy_keymap_multiplatform_20140403/keymap/gui.py", line 176, in creategui
    self.root.iconbitmap(default=iconpath)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 1622, in wm_iconbitmap
    return self.tk.call('wm', 'iconbitmap', self._w, '-default', default)
_tkinter.TclError: wrong # args: should be "wm iconbitmap window ?bitmap?"
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 26 May 2014, 00:09:12
Oh my bad dude.  I always forget that icon thing is windows specific.  I'll fix it soon.  Need more OSX testers!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: KeyboardExpert on Mon, 26 May 2014, 13:50:28
Oh my bad dude.  I always forget that icon thing is windows specific.  I'll fix it soon.  Need more OSX testers!


I'll test. I'm an OS X user and have the same error. I managed to get it working with Wine though. Have you considered making an official EasyAVR.app for Mac users using Wine? It seems to work really well, at least for me.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: codyeatworld on Mon, 26 May 2014, 15:32:13
Oh my bad dude.  I always forget that icon thing is windows specific.  I'll fix it soon.  Need more OSX testers!

Ping me anytime, I'll be happy to help test it out.

Still haven't booted into windows yet  :rolleyes:

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: blighty on Tue, 27 May 2014, 01:00:39
Just want to say thanks for making this tool available.  Had my PHANSI/150 up and running within 5 minutes of soldering the last switch.  It more than made up for the 8 or 9 months it took me to get around to building it.  Keep up the good work!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Melvang on Tue, 27 May 2014, 04:32:01
If I were to wire up a TKL board with the same matrix structure (assuming the same pins went to the same rows and columns) would I be correct in assuming that this tool would work for me?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Tue, 27 May 2014, 08:52:20
I'm able to use it to navigate the bios on my laptop.  I've had some reports of problems on Macs.  I don't own any macs so I can't try it.  If you have problems you can disable the NKRO interface to get a plain old USB HID keyboard which is very compatible with everything.

I have been using an older version with my HID liberation for about 4 months or so. It works fine. The only thing I have minor issues with is the debounce. I have set it to the max (9 I think) and it helped, but it still happens now and then.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Tue, 27 May 2014, 08:55:06
Oh my bad. I use the keyboard with my mac, but I loaded the firm ware from a windows vm when I set it up.

I will test the new version on my mac when it's ready.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 27 May 2014, 11:43:27
If I were to wire up a TKL board with the same matrix structure (assuming the same pins went to the same rows and columns) would I be correct in assuming that this tool would work for me?

Yes, that would technically work.  I'm thinking of making a tutorial for doing wired boards using the phantom firmware.  I may even be convinced to help you make the GUI show your custom layout
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Melvang on Tue, 27 May 2014, 17:13:46
If I were to wire up a TKL board with the same matrix structure (assuming the same pins went to the same rows and columns) would I be correct in assuming that this tool would work for me?

Yes, that would technically work.  I'm thinking of making a tutorial for doing wired boards using the phantom firmware.  I may even be convinced to help you make the GUI show your custom layout

That would be amazing.  I think a good implementation would be to have a check box to show the row and columns to match said stock boards. 

Would love to see this work out for phantom wiring and possibly a full size (hopefully 108 key and/or 105 similar to AEK II).  Either way amazing work on this project.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Ound on Tue, 03 June 2014, 19:02:15
Ok, I just oredered  Pegasus Hoof and I am wondering, will I be able to replicate Poker II layout 1:1 ?
I get the Fn layer but I struggle to comprehend how the Toggle works with this firmware.

Like on Poker II I can just press Caps Lock ( Fn ) and Z to enable toggle Shift or Fn + Space to enable toggle on WASD as Arrow keys.
Would each of those go as a seperate layers or something ? How would I toggle shift?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 04 June 2014, 09:00:44
Ok, I just oredered  Pegasus Hoof and I am wondering, will I be able to replicate Poker II layout 1:1 ?
I get the Fn layer but I struggle to comprehend how the Toggle works with this firmware.

Like on Poker II I can just press Caps Lock ( Fn ) and Z to enable toggle Shift or Fn + Space to enable toggle on WASD as Arrow keys.
Would each of those go as a seperate layers or something ? How would I toggle shift?

The firmware is very powerful.  You can replicate just about any layout.  The two functions you list are not directly supported, but the general purpose features can be combined to get you there.

The WASD thing can be accomplished by using multiple layers.  You would map Fn+Space to activate a different layer that has WASD set to arrow keys.

The Fn+Z to make Shift a toggle is more difficult.  My firmware supports making modifiers toggle switches, however they can't currently be swapped back and forth at run time.  I will have to think about this one.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Wed, 04 June 2014, 15:43:06
I have a somewhat logistical question about your software.

So, Lets say the top right button on my phantom is configured to act as a Fn button, and on the first function layer, F12 becomes a Fn2 button. In layer 2, the enter key becomes a 'boot mode' key.

Do I have to hold all three keys to cause the teensy to move to program mode? That is, if I hold the Fn button long enough to use a key on the next layer, and hold it while fishing for a layer 2  key, will the "meaning" of the middle button maintain itself if I've released the first Fn button?

 I know they work all at once, because somesuch combination was how it's programmed now, although I've forgotten which buttons do what, exactly. (can that be retrieved, btw?)

I guess the question is, how do the layer buttons on layers interact...do I need a dedicated FnLock to layer four, which is nothing but a collection of dedicated Fn_ buttons to my other layers that aren't one or two ...? Or can I cascade through the layers with no memory of how I got here, holding this button but knowing it's layer 5 ...?

TIA for the answer and thanks-in-the-past for this useful software.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 04 June 2014, 20:29:21
I have a somewhat logistical question about your software.

So, Lets say the top right button on my phantom is configured to act as a Fn button, and on the first function layer, F12 becomes a Fn2 button. In layer 2, the enter key becomes a 'boot mode' key.

Do I have to hold all three keys to cause the teensy to move to program mode? That is, if I hold the Fn button long enough to use a key on the next layer, and hold it while fishing for a layer 2  key, will the "meaning" of the middle button maintain itself if I've released the first Fn button?

You don't have to hold both Fn keys.  The key code is looked up at the time of actuation, and it is active as long as you hold the key.  I made that decision early on in the development.  To me, it makes the most sense.  I don't want the PC to receive events if I haven't changed what my fingers are doing.

I know they work all at once, because somesuch combination was how it's programmed now, although I've forgotten which buttons do what, exactly. (can that be retrieved, btw?)

Can't be retrieved in any practical way.  I could do it by hand if it was a life-or-death situation.

I guess the question is, how do the layer buttons on layers interact...do I need a dedicated FnLock to layer four, which is nothing but a collection of dedicated Fn_ buttons to my other layers that aren't one or two ...? Or can I cascade through the layers with no memory of how I got here, holding this button but knowing it's layer 5 ...?

TIA for the answer and thanks-in-the-past for this useful software.

Yeah, like I said, you can chain them by letting go of the earliest Fn keys.  The system keeps track of all Fn presses up to 5 simultaneous layers, I think.

Anyway, just try it!  If it doesn't work for some reason, just let me know.  It is hard to test every edge case for a hobbyist project.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Mon, 09 June 2014, 18:06:14
The beta (both 4-20, and 5-24) seem to have the right-shift problem (phantom). I use an old .hex file and right shift works -- build my new firmware, and it goes away.

Not sure this computer has the 'released' version ... I'll try that and report back. In the mean time, any files you'd like to post for diagnostic reasons?

Edit: no it doesn't give me a right-shift even with the stable release v.8 -- I'm actually not sure where the .hex file that works came from now, either. Might be TMK default build I'm not sure  :-X

2nd edit: Here's a curveball for ya': TMK also breaks the right shift. Remember some pages back about "this version fixes the right shift + phantom problem" and I mentioned how I lifted a pad? That's this board. BUT I have a .hex file that makes it work just fine. It's ANSI-150 (it would have to be, wouldn't it?) and everything works and I know it's not totally stock because the caps lock and control keys have been swapped in the working .hex file but the .dat that created it is the one a page or two back with the insecure pickle so I can't adjust anything to my preferred layout without finding an old version of the keymapper that accepted that version of the .dat file and presumably it would make a working right-shift key.

But why does TMK (modified layout like I want minus a key or two, and also tried stock 150) not see the same key? Aquakeys agrees that with the older .hex, it's a right shift, shorting out either the pin where the switch is, or the nearby hole where the wires were redirected to. Other .hex files, Aquakeys says nope, no keys pressed.

Edite, the Thirde: maybe I've got it. So, Beta-keymapper, phantom-allkeys, build firmware. With me so far? I assigned some random and ridiculous keystrokes to buttons that show as blank, in case it was one of those. So, what works as a right shift with that mystery .hex file, now shows as the menu, or APP key in Aquakeys.

ARRGGHHHH So, tell me, what are my real options?
How can I build an eloquent ANSI / 1.5/1/1.5 .hex file with the particular changes I've decided on? Scratch up the PCB and hope I don't confuse it works with a different jumper wire? Why does the mystery .hex have no troubles with it? I have a picture already of the jumpered switch let me come back with a fourth edit to include that for reference.

here (http://i.imgur.com/eC2RsKjs.jpg) is where it got jumpered to. Looks normal enough to me.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Mon, 09 June 2014, 19:53:27
Soon that JD40 will have 3 stars next to it :))
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Mon, 09 June 2014, 20:36:15
Soon that JD40 will have 3 stars next to it :))

Hmm? How many does it have now? I can tell that's humor I'm just not sure what the implication is.

ANYway ... I figured it out. Sorta.

APP was one of those 'ridiculous keystrokes' -- didn't remember until I went through the process again.

So, 'everykey' has 5:12 blank -- it's not labelled on the board but it would be called 1:12. It should be the 1.75 shift, but the 'default, everykey' layout in 'qaz software is for the shift to be 1:13. I was suffering from a case of didnt-invert-when-I-flipped-the-board, and jumpered to the wrong "nobody uses that shift" switch hole.

SO

The fact that the mystery .hex works, says it was generated before metalliqaz fixed the "phantom right shift" -- and also tells me what the problem with it was. He was using the wrong point in the matrix for it. Knowing that, I can even put together how I got to this point; no shift showing in aquakeys (diodes and tweezers at this stage), see the nearby diode holes and add one, thinking I just used the wrong holes first time around. As 1:12 isn't labelled, when aquakeys shows this is a shift key, but the "right" hole isn't -- I must not have seen enough to understand. I solder switches in, no right shift. Assuming its the keyswitch itself (they are circa 1985) I lift a pad in the (doomed, let us recall) repair attempt. Can't shove pad back in (tried really hard, too) but I remember the nearby "short right shift" spot works too. Put tiny jumper wires in, all is well.

...until I try "working" firmware, which relies on a different key location.

So, way forward is: TMK. I think. I'll just edit the matrix to assume 1:12 and NOT 1:13, then my existing ANSI_150 will work exactly as expected. It'll reduce the resale value I suppose, but there's a hardware solution to that. If I can remove the jumper wire w/o lifting ANOTHER pad, I can just jumper the pins to THE OTHER SHIFT KEY (that's in the opposite direction). Then stock software will match existing hardware.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Mon, 09 June 2014, 20:37:24
Just 1, because it hasn't been tested that much yet
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jdcarpe on Mon, 09 June 2014, 20:58:57
Just 1, because it hasn't been tested that much yet

If I can get it working on Ubuntu, I'll test it and make sure it will work with the SmallFry/JD40s that will ship from the GB.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: esko997 on Mon, 09 June 2014, 21:23:32
Just 1, because it hasn't been tested that much yet

If I can get it working on Ubuntu, I'll test it and make sure it will work with the SmallFry/JD40s that will ship from the GB.

I have it working using Wine in Arch Linux and have been able to perfectly load my JD40 with the beta version provided in the OP. Just FYI
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 09 June 2014, 22:24:10
AKmalamute, it can be done, no problem.  You can access every single spot on the Phantom by loading up the <all keys> layout.  Check your PM.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 09 June 2014, 22:25:11
Just 1, because it hasn't been tested that much yet

If I can get it working on Ubuntu, I'll test it and make sure it will work with the SmallFry/JD40s that will ship from the GB.

Also PM'd you.  It will definitely work.  I haven't split support yet for the Teensy version vs the GB version.  But I will make sure it is well supported for anyone who wants to use it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Mon, 09 June 2014, 22:26:10
I think The current smallfry board is the teensy based one that is currently supported.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jdcarpe on Mon, 09 June 2014, 23:06:34
Yep, the one mkawa is doing the charity GB for is the Teensy version. :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Ound on Fri, 13 June 2014, 04:47:36
I have the question to everyone here, since I have not been around for long and haven't coded any firmwares (yet).

1. Q : How do you implement Toggle-able modifier keys and what problems would arise from such a feature? What's the main thing to worry about? Just the memory the code uses?
2. Q (to op) : Are there gonna be more mouse key support ( like MOUSE3/4/5 etc. ) or is it something that's only available for specific mouse drivers ? I am just not quite sure how OSes handle I/O, is that even dependant on OS ? If it is, does it matter what drivers are there? Or are those extra mouse buttons just hack arounds of something that already exists ?

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 15 June 2014, 21:09:02
Finally updated the Beta version.  Sorry this took so long.  I was tinkering with the embedded password generator that I mentioned in some other post weeks ago.  It isn't documented anywhere, and it isn't well tested as of yet, so I wouldn't recommend using it for the time being, although you're certainly welcome to play around with it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 15 June 2014, 21:39:57
2. Q (to op) : Are there gonna be more mouse key support ( like MOUSE3/4/5 etc. ) or is it something that's only available for specific mouse drivers ? I am just not quite sure how OSes handle I/O, is that even dependant on OS ? If it is, does it matter what drivers are there? Or are those extra mouse buttons just hack arounds of something that already exists ?

I implemented a standard Boot-compatible HID mouse.  That means it is limited to 3 mouse buttons.  MOUSE4/5 really aren't hard to add, I just wanted it to be as compatible as possible.  To be honest, I'm not sure what good it would do.  On every mouse I have, MOUSE4/5 are bound to forward/back, which can already be bound to keys on the keyboard.

1. Q : How do you implement Toggle-able modifier keys and what problems would arise from such a feature? What's the main thing to worry about? Just the memory the code uses?

I implement them when a scancode is activated or deactivated.  Once the system realizes that something is happening to a modifier key, it looks up how the user has configured that modifier.  It then decides how to react.  Most of the magic happens on the upstroke.  If the key was set as a toggle, the system doesn't send the modifier deactivation to the PC.  The only thing it requires is a small bit of memory.

When I was designing my firmware, I intentionally kept away from the major open source firmware (TMK) because I wanted to have a design of my own ("clean room" design).  After completing the Epsilon project, I went ahead and looked at Hasu's code.  It was very interesting after going through it myself.  Unsurprisingly, his code looks and functions completely different from mine.  One of the main differences is that he assigns special functions to locations in the layout (keys).  I assign special functions to scancodes.

For example.  In TMK, you might assign Row 5, Col 0 to TOGGLE(LSHIFT), but on Easy AVR, you would assign R5C0 to LSHIFT and separately configure LSHIFT as toggleable.

This is a fundamental difference between our approaches.  His is obviously very configurable for strange and exotic layouts, but mine allows for simpler code that is easy to fit into very small devices.  I don't think either way is obviously superior to the other, they're just different ways of approaching the problem.

The feature you've been looking for, Ound, is not exactly mappable in my current software because of this design choice.  To be quite honest, I don't know why someone would want to switch back and forth between normal and toggle modes during their daily use in a way that they wouldn't be able to use "Lockable" mode (double-tap to toggle).

The way I see it, these are the possible ways to do what you want with EasyAVR:
1.  I redesign the system to work like TMK (unlikely at the moment)
2.  You decide on one or the other and keep it
3.  You just use Lockable mode. (honestly, I think this is what you want)
4.  I add a key that specifically mimics the PokerII behavior.  I've done this with other keys (GraveEsc and LockingCAPS)
5.  You map LSHIFT to normal and RSHIFT to toggle, and use LSHIFT on both shift keys on one layer and use RSHIFT on both shift keys on the other layer.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Ound on Tue, 17 June 2014, 16:27:12
Really great write up, thanks for the insight into your and tmk firmware design. Thanks for the suggestions too, I guess one of your solutions will work for me, i.e. using RSHIFT as  Toggle or something like that.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: minho on Fri, 20 June 2014, 12:25:35
Can anyone explain to me how to reprogram a Techkeys business card? I can't find it under the layouts when I click "New Default Layout", and I can't seem to find any options anywhere for custom layouts.

Thanks
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Fri, 20 June 2014, 13:09:25
Can anyone explain to me how to reprogram a Techkeys business card? I can't find it under the layouts when I click "New Default Layout"
Update your version? I have the techkeys card when I try it ... of course, I might be running a beta; not sure right now.

There's no support right now for custom layouts, more's the pity.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 20 June 2014, 14:26:59
Can anyone explain to me how to reprogram a Techkeys business card? I can't find it under the layouts when I click "New Default Layout", and I can't seem to find any options anywhere for custom layouts.

Thanks

Get the latest beta.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 20 June 2014, 14:31:30
There's no support right now for custom layouts, more's the pity.

If you can figure out how to implement that, then lay it on me.  It's a very difficult problem, which is probably why this (http://geekhack.org/index.php?topic=56985) fizzled out.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: minho on Fri, 20 June 2014, 14:49:04
Can anyone explain to me how to reprogram a Techkeys business card? I can't find it under the layouts when I click "New Default Layout", and I can't seem to find any options anywhere for custom layouts.

Thanks

Get the latest beta.

How do I start the keyboard in bootloader mode? Sorry not very familiar with keyboard software and the like.

EDIT:
While I'm at it, how do I know which device in FLIP is the techkeys card? When click select a device, there is a very long list that pops up. Can I check this up in Control Panel or something?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Fri, 20 June 2014, 14:57:02
Can anyone explain to me how to reprogram a Techkeys business card? I can't find it under the layouts when I click "New Default Layout", and I can't seem to find any options anywhere for custom layouts.

Thanks

Get the latest beta.

How do I start the keyboard in bootloader mode? Sorry not very familiar with keyboard software and the like.


Short the two pads above the robot's head
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 20 June 2014, 15:01:31
In Flip, choose the ATmega16u2
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Mooby on Sat, 21 June 2014, 06:38:16
Took me some time to get stuff working, but once everything is set up it runs like a charm and is really easy to use. Thanks for your effort!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vivalarevolución on Tue, 24 June 2014, 10:02:47
Does anybody know if this firmware will work with some of Kaliet's custom keyboards, particularly the 22 Mini-EX?

http://22kbd.com/category/70%25%2022Mini

I am not very knowledgeable about these custom firmwares and what controllers they may be compatible with.  The current firmware on the keyboard is ps2avrU for Aikon and the controller does say "ATmega32U4" on it.  Not sure if that helps.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 24 June 2014, 11:32:52
If they use the ATmega32U4, ATmega32U2, or similar, then they can be made to work.  Are they open source? I can't read Korean
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vivalarevolución on Tue, 24 June 2014, 12:40:55
If they use the ATmega32U4, ATmega32U2, or similar, then they can be made to work.  Are they open source? I can't read Korean

Yea, I don't if they are open source.  There are guides around Geekhack for programming these controllers with this firmware.

http://geekhack.org/index.php?topic=59514.0

http://geekhack.org/index.php?topic=38406.0


EDIT:  Also, I think this was my 1000th post.  Four figures, baby!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 24 June 2014, 15:05:52
If it uses Aikon then it probably isn't compatible
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vivalarevolución on Tue, 24 June 2014, 15:20:10
If it uses Aikon then it probably isn't compatible

I will open up the keyboard and take some pictures, then get back with you on this one.  But I am quite sure it is an Aikon Controller, based on the information provided to me.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jdcarpe on Tue, 24 June 2014, 15:43:57
In the latest multiplatform beta, under Linux (Ubuntu), I had to edit the Easy_keymap.sh to

Code: [Select]
#!\bin\sh

to

Code: [Select]
#!/bin/sh

Other than that, it works!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vivalarevolución on Tue, 24 June 2014, 16:46:31
If it uses Aikon then it probably isn't compatible

I will open up the keyboard and take some pictures, then get back with you on this one.  But I am quite sure it is an Aikon Controller, based on the information provided to me.

The keyboard has an ATMega32-A.  I imagine that means it is incompatible with your firmware.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 24 June 2014, 18:21:36
In the latest multiplatform beta, under Linux (Ubuntu), I had to edit the Easy_keymap.sh to

Code: [Select]
#!\bin\sh

to

Code: [Select]
#!/bin/sh

Other than that, it works!
oh cripes!  thanks JD.  can you tell I'm working in Windows? lol
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Tue, 24 June 2014, 18:22:52
If it uses Aikon then it probably isn't compatible

Grrrr aikon. I'm trying to program my mx mini with their software but its not working for me
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vivalarevolución on Tue, 24 June 2014, 19:10:46
If it uses Aikon then it probably isn't compatible

Grrrr aikon. I'm trying to program my mx mini with their software but its not working for me


Yea, I'm not crazy about this controller.  And it's integrated into the PCB on mine.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 24 June 2014, 19:59:04
Maybe I should give it a shot.  I do have an MX mini I could play with
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Tue, 24 June 2014, 20:00:11
Maybe I should give it a shot.  I do have an MX mini I could play with

YAY!  :thumb:
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vivalarevolución on Tue, 24 June 2014, 20:45:04
Maybe I should give it a shot.  I do have an MX mini I could play with

Let me know if you need a test dummy.  FYI, it seems to have problems working smoothly with Mac OS.  Windows is fine.  Not sure if that helps.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 24 June 2014, 21:28:56
I have Windows and Linux at home. No Mac available anywhere.  If it doesn't work let me know specific details and I'll try and fix. 
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: zennasyndroxx on Wed, 25 June 2014, 21:36:11
hi again :D

first off, I would like to thank you for your dedication and created this program.

I'm afraid, after reading through the help page I'm still clueless about what layers mean.

Anyone can explain to me in layman's term what layers do? what does different layers do?

Sorry for the pain in the ass questions about this though :(
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 25 June 2014, 22:29:04
Each layer is a different layout for your board.  They are accessed using the Fn keys. 

Think of them like special Shift keys.  When you press shift, your layout is changed to Capital letter and symbols on the number row.  Likewise, when you press the Fn key, the default map is replaced with whatever is programmed to the corresponding layer.  The FN key accesses the FN layer.  The FN2 key accesses Layer 2, FN3->Layer 3 and so on.

Use them like programmable shifts
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: zennasyndroxx on Wed, 25 June 2014, 22:49:19
Each layer is a different layout for your board.  They are accessed using the Fn keys. 

Think of them like special Shift keys.  When you press shift, your layout is changed to Capital letter and symbols on the number row.  Likewise, when you press the Fn key, the default map is replaced with whatever is programmed to the corresponding layer.  The FN key accesses the FN layer.  The FN2 key accesses Layer 2, FN3->Layer 3 and so on.

Use them like programmable shifts

Thank you for your prompt response. ah okay that makes it clear now. thanks again :)

So if I would like to make a play/pause shortcut key with FN, i would have to set a fn key to anywhere on the keyboard, on the FN layer set the play/pause to anywhere, then when it's done I would have to just click on FN+play/pause key location to play pause if it's on normal?

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: sakai4eva on Thu, 26 June 2014, 00:59:35
Each layer is a different layout for your board.  They are accessed using the Fn keys. 

Think of them like special Shift keys.  When you press shift, your layout is changed to Capital letter and symbols on the number row.  Likewise, when you press the Fn key, the default map is replaced with whatever is programmed to the corresponding layer.  The FN key accesses the FN layer.  The FN2 key accesses Layer 2, FN3->Layer 3 and so on.

Use them like programmable shifts

Thank you for your prompt response. ah okay that makes it clear now. thanks again :)

So if I would like to make a play/pause shortcut key with FN, i would have to set a fn key to anywhere on the keyboard, on the FN layer set the play/pause to anywhere, then when it's done I would have to just click on FN+play/pause key location to play pause if it's on normal?

Hi zenna, I recognize that you're a Malaysian from your handle... dadudeneverabides here. You can PM me in LYN or here later (7pm+ local time) and I'll send you over an example code that I used for my ergodox. I'm at work right now, so it's a tad bit inconvenient for me to show the codes as I don't remember offhand.

On to business:

Layers work by triggering each layer with an FN key. So when you, say, press FN1 on your layout, you trigger the layerblock for it.

If, for example you want to trigger F1 when you press FN1 + 1, then you use a remapblock code instead. The code would work like using FN key to trigger the rempablock, and in the remapblock you define which key to map it to.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 03 July 2014, 16:58:11
New beta version with early support for the Orion.  Keyboard works great but the backlights probably don't work at all.
Interesting fact, the Orion is almost exactly the same as a KMAC on the inside.
I'm also going to add LightSaver/LightSaber support, but only if someone wants to help test.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pacifist on Thu, 03 July 2014, 17:09:52
could you add support to the faceU boards?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 03 July 2014, 17:24:49
could you add support to the faceU boards?

If it has one of the microcontrollers from the OP, then it is possible.  I don't own one.  I would need to either borrow one or have a dedicated assistant that owns one to ever have a hope of getting it done.  Looks to be a very simple board so it shouldn't be difficult.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Thu, 03 July 2014, 19:55:57
could you add support to the faceU boards?

If it has one of the microcontrollers from the OP, then it is possible.  I don't own one.  I would need to either borrow one or have a dedicated assistant that owns one to ever have a hope of getting it done.  Looks to be a very simple board so it shouldn't be difficult.

A couple of us would be willing to help you out. I can help you understand the matrix and test your efforts.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jdcarpe on Thu, 03 July 2014, 20:22:32
FaceU and FaceW should both use the ATmega32a controller.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Thu, 03 July 2014, 20:46:58
FaceU and FaceW should both use the ATmega32a controller.

That's a good point. I have a FaceW.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: infiniti on Fri, 04 July 2014, 07:22:20
could you add support to the faceU boards?

If it has one of the microcontrollers from the OP, then it is possible.  I don't own one.  I would need to either borrow one or have a dedicated assistant that owns one to ever have a hope of getting it done.  Looks to be a very simple board so it shouldn't be difficult.

A couple of us would be willing to help you out. I can help you understand the matrix and test your efforts.

I volunteer!  Just tell me what you need.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Fri, 04 July 2014, 10:09:54
could you add support to the faceU boards?

If it has one of the microcontrollers from the OP, then it is possible.  I don't own one.  I would need to either borrow one or have a dedicated assistant that owns one to ever have a hope of getting it done.  Looks to be a very simple board so it shouldn't be difficult.

A couple of us would be willing to help you out. I can help you understand the matrix and test your efforts.

I volunteer!  Just tell me what you need.

Haha. I was thinking of you and I when I said 'a couple of us'. I assumed you would be down with helping. :P
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vivalarevolución on Sat, 05 July 2014, 08:39:14
FaceU and FaceW should both use the ATmega32a controller.

That's a good point. I have a FaceW.

I've got a keyboard with those. I would help any way I could, but not sure how.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 05 July 2014, 16:20:48
Right now the only thing I need is confirmation of the ATmega part number.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vivalarevolución on Tue, 08 July 2014, 11:02:52
Right now the only thing I need is confirmation of the ATmega part number.

Sorry, been on vacation.  I can take care of that for you.  I will take some pictures to confirm.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jdcarpe on Tue, 08 July 2014, 11:12:44
ATmega32a confirmed

(http://i.imgur.com/IK8KSuT.jpg)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 08 July 2014, 11:36:00
Many thanks.  Now I just need to make sure I own a board that has a 32A
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vivalarevolución on Sun, 13 July 2014, 13:22:22
ATmega32a confirmed

Show Image
(http://i.imgur.com/IK8KSuT.jpg)



Not sure if this is of any use to you, but here a picture of the controller on my Kaliet 22 Mini.

[attach=1]
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 13 July 2014, 17:15:40
Just looked on my MX mini.  I do indeed have a ATmega32A in my own collection.
Step two: figure out how to program this thing.
Step three: port my code to a different USB platform.

I suspect that this MX mini of mine has some kind of custom software.  It has all kinds of strange LED effects.  Must contact previous owner.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Sun, 13 July 2014, 18:27:03
Just looked on my MX mini.  I do indeed have a ATmega32A in my own collection.
Step two: figure out how to program this thing.
Step three: port my code to a different USB platform.

I suspect that this MX mini of mine has some kind of custom software.  It has all kinds of strange LED effects.  Must contact previous owner.

You should be able to go here: http://boot.winkeyless.kr/bootMapper/

And load the attached hex file to see what the matrix looks like. 

If you have problems, you can download all the 1.7 files from: http://winkeyless.kr/17

This could also help: http://geekhack.org/index.php?topic=50580.msg1256970#msg1256970

Let me know if you have questions.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vivalarevolución on Sun, 13 July 2014, 19:24:09
Just looked on my MX mini.  I do indeed have a ATmega32A in my own collection.
Step two: figure out how to program this thing.
Step three: port my code to a different USB platform.

I suspect that this MX mini of mine has some kind of custom software.  It has all kinds of strange LED effects.  Must contact previous owner.

You should be able to go here: http://boot.winkeyless.kr/bootMapper/

And load the attached hex file to see what the matrix looks like. 

If you have problems, you can download all the 1.7 files from: http://winkeyless.kr/17

This could also help: http://geekhack.org/index.php?topic=50580.msg1256970#msg1256970

Let me know if you have questions.

The biggest problem that i have with that programming method is that I cannot figure out a way to program on Mac OS.  The keyboard works on Mac OS, but the applications needed to flash the firmware onto the controller will not work with Mac.  At least in my experience.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 13 July 2014, 20:04:53
Just looked on my MX mini.  I do indeed have a ATmega32A in my own collection.
Step two: figure out how to program this thing.
Step three: port my code to a different USB platform.

I suspect that this MX mini of mine has some kind of custom software.  It has all kinds of strange LED effects.  Must contact previous owner.

You should be able to go here: http://boot.winkeyless.kr/bootMapper/

And load the attached hex file to see what the matrix looks like. 

If you have problems, you can download all the 1.7 files from: http://winkeyless.kr/17

This could also help: http://geekhack.org/index.php?topic=50580.msg1256970#msg1256970

Let me know if you have questions.

Those are directions for a FaceU but I have a MX Mini with USB.  I find all of this very confusing and it annoys me that the koreans make things so hard.  I can't read anything on that winkeyless.kr site, but all I was able to find for the MX mini doesn't work with the keymapper.

I'm afraid to try and reprogram my mini because I'm not sure I could ever get it back to working.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Sun, 13 July 2014, 20:25:37
Just looked on my MX mini.  I do indeed have a ATmega32A in my own collection.
Step two: figure out how to program this thing.
Step three: port my code to a different USB platform.

I suspect that this MX mini of mine has some kind of custom software.  It has all kinds of strange LED effects.  Must contact previous owner.

You should be able to go here: http://boot.winkeyless.kr/bootMapper/

And load the attached hex file to see what the matrix looks like. 

If you have problems, you can download all the 1.7 files from: http://winkeyless.kr/17

This could also help: http://geekhack.org/index.php?topic=50580.msg1256970#msg1256970

Let me know if you have questions.

The biggest problem that i have with that programming method is that I cannot figure out a way to program on Mac OS.  The keyboard works on Mac OS, but the applications needed to flash the firmware onto the controller will not work with Mac.  At least in my experience.

Yes, that is a problem. I run a windows VM in either Parallels Desktop or VMware Fusion. I think there is a free version of VMware Fusion and window can be found.

I know parallels gives you a prompt when you plug in a keyboard "use on mac, or use on windows (parallels)". Pick windows and you have access to the keyboard hardware as you normally would.

I tried doing linux in fusion, but I had some issues. I did not spend much time with it, so I may just have been a Noob moment.

I can test on either if you have questions. 
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Sun, 13 July 2014, 20:27:23
Just looked on my MX mini.  I do indeed have a ATmega32A in my own collection.
Step two: figure out how to program this thing.
Step three: port my code to a different USB platform.

I suspect that this MX mini of mine has some kind of custom software.  It has all kinds of strange LED effects.  Must contact previous owner.

You should be able to go here: http://boot.winkeyless.kr/bootMapper/

And load the attached hex file to see what the matrix looks like. 

If you have problems, you can download all the 1.7 files from: http://winkeyless.kr/17

This could also help: http://geekhack.org/index.php?topic=50580.msg1256970#msg1256970

Let me know if you have questions.

Those are directions for a FaceU but I have a MX Mini with USB.  I find all of this very confusing and it annoys me that the koreans make things so hard.  I can't read anything on that winkeyless.kr site, but all I was able to find for the MX mini doesn't work with the keymapper.

I'm afraid to try and reprogram my mini because I'm not sure I could ever get it back to working.

There is a mini hex file in the same package which will work. Yes, those instructions are for the 60%+, but the mini uses a different hex.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Sun, 13 July 2014, 20:29:47
Just looked on my MX mini.  I do indeed have a ATmega32A in my own collection.
Step two: figure out how to program this thing.
Step three: port my code to a different USB platform.

I suspect that this MX mini of mine has some kind of custom software.  It has all kinds of strange LED effects.  Must contact previous owner.

You should be able to go here: http://boot.winkeyless.kr/bootMapper/

And load the attached hex file to see what the matrix looks like. 

If you have problems, you can download all the 1.7 files from: http://winkeyless.kr/17

This could also help: http://geekhack.org/index.php?topic=50580.msg1256970#msg1256970

Let me know if you have questions.

Those are directions for a FaceU but I have a MX Mini with USB.  I find all of this very confusing and it annoys me that the koreans make things so hard.  I can't read anything on that winkeyless.kr site, but all I was able to find for the MX mini doesn't work with the keymapper.

I'm afraid to try and reprogram my mini because I'm not sure I could ever get it back to working.

Use google translate in chrome and you will get close enough to download what you need. Then basically just follow Sprit's instructions. Infiniti has a good guide as well. I think he linked it in his sig.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vivalarevolución on Mon, 14 July 2014, 10:13:12
Just looked on my MX mini.  I do indeed have a ATmega32A in my own collection.
Step two: figure out how to program this thing.
Step three: port my code to a different USB platform.

I suspect that this MX mini of mine has some kind of custom software.  It has all kinds of strange LED effects.  Must contact previous owner.

You should be able to go here: http://boot.winkeyless.kr/bootMapper/

And load the attached hex file to see what the matrix looks like. 

If you have problems, you can download all the 1.7 files from: http://winkeyless.kr/17

This could also help: http://geekhack.org/index.php?topic=50580.msg1256970#msg1256970

Let me know if you have questions.

The biggest problem that i have with that programming method is that I cannot figure out a way to program on Mac OS.  The keyboard works on Mac OS, but the applications needed to flash the firmware onto the controller will not work with Mac.  At least in my experience.

Yes, that is a problem. I run a windows VM in either Parallels Desktop or VMware Fusion. I think there is a free version of VMware Fusion and window can be found.

I know parallels gives you a prompt when you plug in a keyboard "use on mac, or use on windows (parallels)". Pick windows and you have access to the keyboard hardware as you normally would.

I tried doing linux in fusion, but I had some issues. I did not spend much time with it, so I may just have been a Noob moment.

I can test on either if you have questions.


Did you need a Windows license to do this?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jdcarpe on Mon, 14 July 2014, 10:35:17
metalliqaz,

You might ping Thechemist regarding the MX Mini programming. He soldered the SMD components onto mine, and also programmed it for me. :D

I'm pretty sure you need the PS2AVR USB dongle to flash the firware, though.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Mon, 14 July 2014, 17:04:40
Just looked on my MX mini.  I do indeed have a ATmega32A in my own collection.
Step two: figure out how to program this thing.
Step three: port my code to a different USB platform.

I suspect that this MX mini of mine has some kind of custom software.  It has all kinds of strange LED effects.  Must contact previous owner.

You should be able to go here: http://boot.winkeyless.kr/bootMapper/

And load the attached hex file to see what the matrix looks like. 

If you have problems, you can download all the 1.7 files from: http://winkeyless.kr/17

This could also help: http://geekhack.org/index.php?topic=50580.msg1256970#msg1256970

Let me know if you have questions.

The biggest problem that i have with that programming method is that I cannot figure out a way to program on Mac OS.  The keyboard works on Mac OS, but the applications needed to flash the firmware onto the controller will not work with Mac.  At least in my experience.

Yes, that is a problem. I run a windows VM in either Parallels Desktop or VMware Fusion. I think there is a free version of VMware Fusion and window can be found.

I know parallels gives you a prompt when you plug in a keyboard "use on mac, or use on windows (parallels)". Pick windows and you have access to the keyboard hardware as you normally would.

I tried doing linux in fusion, but I had some issues. I did not spend much time with it, so I may just have been a Noob moment.

I can test on either if you have questions.


Did you need a Windows license to do this?

Umm... Yes?  Of course I have to tell you that you need a license to install windows.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Mon, 14 July 2014, 17:07:00
metalliqaz,

You might ping Thechemist regarding the MX Mini programming. He soldered the SMD components onto mine, and also programmed it for me. :D

I'm pretty sure you need the PS2AVR USB dongle to flash the firware, though.

I will verify this for you as soon as I get mine soldered up. Just finished modding the switches last night.

I did not need anything special to flash my FaceW with the process I linked previously.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 14 July 2014, 17:30:33
I believe you have to get the USB dongle to flash the bootloader using the serial link.  This is quite typical for these microcontrollers.  Once that bootloader is programmed, you can reflash the device with USB.  (The ATmega32U4 that I use comes with Atmel's USB bootloader pre-installed)

From what I understand, there are two possible bootloaders.  PS2avrU and Aikon.  They are not compatible.  As far as I can tell, there isn't really a standard.  There also isn't really a standard way to get these things into the bootloader once they are programmed.  Holding Q does not work on my board.

This makes it a very difficult landscape to navigate while trying to support it with my integrated tool.  How am I supposed to support all those boards with all those options?  This is why their tools are so difficult to use.  My claim to fame is being easy.  That's stretched as far as possible with requiring Flip.  How do I get noobs to determine which PCB version  they have inside their board?  How do I get them to figure out which bootloader they have?

The A87 and MX mini (and some others) seem to be fairly open platforms, so I'm sure I could get it working with enough time and access to boards, but how do I support it?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Igthorn on Mon, 14 July 2014, 17:47:58
From looking at that firmware download, they are using HIDBootFlash.exe and bootloadhid.exe.  HIDBootFlash is a gui flasher capable of loading firmware to devices using the bootloadhid and avrusbboot bootloaders.  And bootloadhid is well, bootloadhid.  So it's safe to say they are using bootloadhid for the bootloader.  You can download the firmware and compare it to the officially released binaries.

http://www.obdev.at/products/vusb/bootloadhid.html
http://vusb.wikidot.com/project:hidbootflash


Code: [Select]
; Generated by WIN-SFV32 v1 (compatible; RapidCRC http://rapidcrc.sourceforge.net )
;
bootloadHID.exe E63BBE76
bootloadHID.exe.aikon E63BBE76
bootloadHID.exe.ps2avru E63BBE76
HIDBootFlash.exe 3808C633
HIDBootFlash.exe.aikon 3808C633
HIDBootFlash.exe.ps2avru 3808C633
<file> is from officially released binaries
<file>.aikon is from ps2avrU_V1.7_for_aikon_140630.zip
<file>.ps2avru is from ps2avrU_firmware_V1.7_140630.zip
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swill on Mon, 14 July 2014, 20:31:36
I believe you have to get the USB dongle to flash the bootloader using the serial link.  This is quite typical for these microcontrollers.  Once that bootloader is programmed, you can reflash the device with USB.  (The ATmega32U4 that I use comes with Atmel's USB bootloader pre-installed)

From what I understand, there are two possible bootloaders.  PS2avrU and Aikon.  They are not compatible.  As far as I can tell, there isn't really a standard.  There also isn't really a standard way to get these things into the bootloader once they are programmed.  Holding Q does not work on my board.

This makes it a very difficult landscape to navigate while trying to support it with my integrated tool.  How am I supposed to support all those boards with all those options?  This is why their tools are so difficult to use.  My claim to fame is being easy.  That's stretched as far as possible with requiring Flip.  How do I get noobs to determine which PCB version  they have inside their board?  How do I get them to figure out which bootloader they have?

The A87 and MX mini (and some others) seem to be fairly open platforms, so I'm sure I could get it working with enough time and access to boards, but how do I support it?

As a developer, I understand everything you are saying. It is very hard to design and develop for all the different options and still remain easy too use. I am not going to pretend this is easy, cause it's not.

Keep in mind that any support in your tool is better than what they have to work with today. I don't think support beyond best effort is expected.

I found working with their tool difficult at best and I was not brave enough to try any fancy layouts.  Just a few basic changes.

How much of the option set do you need to code for to have a 'working' firmware? I think backlighting would just be out to start with. Try to keep it simply to the matrix and control leds.
Have you been working on the modularity of your code as you add new keyboards and layouts? All these potential options do make it difficult to reuse portions of the code base and still have a sane control flow.

Feel free to pm me if you want to bounce around ideas.

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: xSpartanCx on Mon, 28 July 2014, 16:39:03
Hey, I'd like to request a feature.
For the BL_Dimmer, could there be a way to set specific values to dim it to? On my phantom I've been trying to get the scroll lock LEDs to be less blinding without resoldering the resistors and the dimmer doesn't change the brightness much.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Hundrakia on Mon, 28 July 2014, 16:53:22
-watching this thread!-
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: byker on Thu, 31 July 2014, 01:01:36
Thanks a lot for this! It only took me 20minutes to figure out from scratch how to program my techkeys card!  :thumb:  :D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Ound on Mon, 11 August 2014, 23:34:11
Hmm, there is an option to Volume Down/Volume Up and Mute for Default "Playback" device. Would it be possible to create new scancodes for "Record" device like microphone, ability to mute at least.
If that's possible at all, without much hassle and compatibility issues ( as in, would it work on Linux/Mac too ? )
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Mon, 11 August 2014, 23:47:31
Would it be possible to create new scancodes for "Record" device like microphone, ability to mute at least.

"create new scancodes" is outside the scope of the program 'Qaz is maintaining. If it's not in the HID protocol now, it's not likely to get shoehorned in.

 I can't say as to whether I've ever seen any keyboard with a "record" button, so honestly I'm guessing you're going to need custom software of some variety, and tell it to listen for a combo of your choosing ... ^@+ perhaps. At which point you can create a macro to send that whole sequence of course.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: domoaligato on Tue, 12 August 2014, 00:07:56
what program are you using where you leave the microphone open the whole time and it does not support native keyboard shortcuts for mic mute?
I use push to talk in everything.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Arcoril on Wed, 13 August 2014, 00:40:44
I just picked up a new 20140521 revision of the Frosty Flake controller for the CM QFR. However, it doesn't look like the "CM Storm QFR (Frosty Flake)" profile in Easy AVR works with this new revision.

It looks like bpiphany's firmware (https://github.com/BathroomEpiphanies/costar_keyboard/) for this controller now has two separate flags for the Flake: flake_20130602 and flake_20140521. I tried both; only the 20140521 works. It looks like the changes are all contained in this commit (https://github.com/BathroomEpiphanies/costar_keyboard/commit/0f6262ad1ed8d3016348575dea0cd3e33834a4e1).

Would it be possible to add support for the new Flake revision, please? Or are there any workarounds I could try in the meantime? Thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 13 August 2014, 06:24:33
I just picked up a new 20140521 revision of the Frosty Flake controller for the CM QFR. However, it doesn't look like the "CM Storm QFR (Frosty Flake)" profile in Easy AVR works with this new revision.

It looks like bpiphany's firmware (https://github.com/BathroomEpiphanies/costar_keyboard/) for this controller now has two separate flags for the Flake: flake_20130602 and flake_20140521. I tried both; only the 20140521 works. It looks like the changes are all contained in this commit (https://github.com/BathroomEpiphanies/costar_keyboard/commit/0f6262ad1ed8d3016348575dea0cd3e33834a4e1).

Would it be possible to add support for the new Flake revision, please? Or are there any workarounds I could try in the meantime? Thanks!

Ah yes, I remember when the new controller came out, I wanted to support it, but I didn't know what the new hardware looked like.  If he has committed updates to his software, I can just copy those changes.  Should be able to add support easily.  I'll take a look at it tonight
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Arcoril on Wed, 13 August 2014, 10:33:42
I just picked up a new 20140521 revision of the Frosty Flake controller for the CM QFR. However, it doesn't look like the "CM Storm QFR (Frosty Flake)" profile in Easy AVR works with this new revision.

It looks like bpiphany's firmware (https://github.com/BathroomEpiphanies/costar_keyboard/) for this controller now has two separate flags for the Flake: flake_20130602 and flake_20140521. I tried both; only the 20140521 works. It looks like the changes are all contained in this commit (https://github.com/BathroomEpiphanies/costar_keyboard/commit/0f6262ad1ed8d3016348575dea0cd3e33834a4e1).

Would it be possible to add support for the new Flake revision, please? Or are there any workarounds I could try in the meantime? Thanks!

Ah yes, I remember when the new controller came out, I wanted to support it, but I didn't know what the new hardware looked like.  If he has committed updates to his software, I can just copy those changes.  Should be able to add support easily.  I'll take a look at it tonight

That would be awesome! Thank you!  :thumb:
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 13 August 2014, 10:35:29
I already PM'd you the build.  If it works, I will release it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tedk84 on Mon, 18 August 2014, 07:53:13
hi :)
i just bought my pegasus hoof (filco mj2 tkl), and it works great... but...

its a german layout, and some of the keys wont work.
(http://i.imgur.com/u7eTTcJ.png)
(the ones with the green circle)
As you see, you have to press alt gr + 2,3,7,8,9, or 0 to get them.
@,µ,€,\ (alt gr + q, e, ...) do work. I have read the thread, but no solutions for it. Any ideas?
Tried the iso (88) and ansi (87) layout, but doesnt seem to help - also tried the beta and release, same result.

Thanks in advance and for the great tool!

dennis



EDIT: MY FAULT - its the virtual num lock thingy - took me some time to get it :) works fine now!

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 18 August 2014, 11:04:27
Crap I thought I removed that virtual num lock being on by default....
Glad it works for you, though!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Vibex on Mon, 18 August 2014, 14:25:19
Can I use this to reprogram my Faceu Replica board?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: domoaligato on Mon, 18 August 2014, 14:58:10
Can I use this to reprogram my Faceu Replica board?

please see Reply #392
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Vibex on Mon, 18 August 2014, 15:06:08
Can I use this to reprogram my Faceu Replica board?

please see Reply #392
Okay, thanks. Should have read the thread first. :Facepalm:
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: domoaligato on Mon, 18 August 2014, 16:21:37
Can I use this to reprogram my Faceu Replica board?

please see Reply #392
Okay, thanks. Should have read the thread first. :Facepalm:

no problem. I was just trying to help point you in the direction. :D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: The feel is of the keys! on Tue, 19 August 2014, 22:57:14
Ummm... don't use the new beta version just yet... I'm pretty sure I built it wrong.  New update tomorrow.  Sorry.

Alright all that has been fixed.  I've tried it on my Epsilon, Qazpad, Phantom, HID Liberation Device, KMAC, and Rosewill.  If I don't hear of any bugs, I will move today's beta version to Release.

I was wondering do you have to have the Black Petal controller to remap the Rosewill, or will the stock one also work?
Also great job on the program! Made setting up my JD40 a breeze and headache free!  :thumb:

Also would you be able to do the TechKeys business card?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 20 August 2014, 12:09:41
I was wondering do you have to have the Black Petal controller to remap the Rosewill, or will the stock one also work?
Also great job on the program! Made setting up my JD40 a breeze and headache free!  :thumb:

Also would you be able to do the TechKeys business card?

You must have a black petal controller.  The original equipment that comes with the Rosewill is not reprogrammable.

The techkeys card is already supported.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: The feel is of the keys! on Wed, 20 August 2014, 13:33:00
I was wondering do you have to have the Black Petal controller to remap the Rosewill, or will the stock one also work?
Also great job on the program! Made setting up my JD40 a breeze and headache free!  :thumb:

Also would you be able to do the TechKeys business card?

You must have a black petal controller.  The original equipment that comes with the Rosewill is not reprogrammable.

The techkeys card is already supported.
Ah thanks. I'll have to order a black petal then.
Also I found the techkeys. I had the non-beta version which was why I couldn't find it. Thanks.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jameslr on Mon, 25 August 2014, 15:01:14
Just downloaded and used the software and I have to say it's perfectly intuitive and worked great. I used it on a Filco TKL with HID Liberation and loaded the hex file with FLIP. Nice work metalliqaz, and thanks for putting this out there for everyone to use.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 25 August 2014, 21:15:49
New beta with Frosty Flake V2 support and initial GH36 support.

Special thanks to super-bro Arcoril for testing all my builds for me while I blundered through debugging via trial and error!

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Arcoril on Mon, 25 August 2014, 21:19:55
Just wanted to give a huge thank you to metalliqaz for all his work in adding support for the QFR Frosty Flake v2! Everything works great and I'm really excited to have a fully programmable board now.

Edit: No, thank you, metalliqaz! I know you're super busy and I appreciate the hell out of all your help.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: SpAmRaY on Mon, 25 August 2014, 21:31:53
Any chance of getting lightsaver support?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 25 August 2014, 21:47:48
Any chance of getting lightsaver support?

Yes there is.  It's almost supported already, because it is so similar to KMAC and Orion.  All I'd need is a volunteer to do the testing, because I don't own that hardware.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Flamingchook on Wed, 27 August 2014, 00:32:35
Feature request: Support for the USB HID F13 - F24 scan codes.

No software requires them that I've encountered, and AutoHotkey looks like it can read those scan codes so they would be perfect as "safe" hotkeys that couldn't accidentally interfere with anything else. They would also would be great for the GH-122 that samwikekoi is working on if there are any plans for supporting that board.

Another thing. I notice that my keyboard appears as an "Epsilon Keyboard" under Windows. I'm wondering if it's at all feasible to have the name be user configurable?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 27 August 2014, 08:51:08
Feature request: Support for the USB HID F13 - F24 scan codes.

Very early in the project I pruned the number of available scancodes to those available on an ANSI or ISO keyboard because there was just too much clutter.  There is no technical reason they weren't included, just aesthetic.

No software requires them that I've encountered, and AutoHotkey looks like it can read those scan codes so they would be perfect as "safe" hotkeys that couldn't accidentally interfere with anything else. They would also would be great for the GH-122 that samwikekoi is working on if there are any plans for supporting that board.

That's a really good point about hotkeys, I'll add this feature.

Another thing. I notice that my keyboard appears as an "Epsilon Keyboard" under Windows. I'm wondering if it's at all feasible to have the name be user configurable?

Finally someone notices.  The software began as a dedicated firmware for my Epsilon project.  It outgrew that role when I added support for other keyboards.  While this was happening, I never updated the USB ident data to say anything other than "Epsilon Keyboard".  I was going to change it to say something descriptive for each type of hardware, but I stopped myself because if I change that string everyone already using the software would suddenly have their keyboard redetected.   On my Windows 7 laptop, it screwed up and I had to go into the device manager to remove the old device before it would work again.  It is technically possible to make that user configurable, but I don't see that as particularly valuable to justify adding complexity to the interface.  If I did anything, I think it would be hard-coded descriptive names.  The fact that it might cause a flood of support issues tipped the scales against the idea.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Flamingchook on Wed, 27 August 2014, 09:46:24
Feature request: Support for the USB HID F13 - F24 scan codes.

Very early in the project I pruned the number of available scancodes to those available on an ANSI or ISO keyboard because there was just too much clutter.  There is no technical reason they weren't included, just aesthetic.

No software requires them that I've encountered, and AutoHotkey looks like it can read those scan codes so they would be perfect as "safe" hotkeys that couldn't accidentally interfere with anything else. They would also would be great for the GH-122 that samwikekoi is working on if there are any plans for supporting that board.

That's a really good point about hotkeys, I'll add this feature.

Another thing. I notice that my keyboard appears as an "Epsilon Keyboard" under Windows. I'm wondering if it's at all feasible to have the name be user configurable?

Finally someone notices.  The software began as a dedicated firmware for my Epsilon project.  It outgrew that role when I added support for other keyboards.  While this was happening, I never updated the USB ident data to say anything other than "Epsilon Keyboard".  I was going to change it to say something descriptive for each type of hardware, but I stopped myself because if I change that string everyone already using the software would suddenly have their keyboard redetected.   On my Windows 7 laptop, it screwed up and I had to go into the device manager to remove the old device before it would work again.  It is technically possible to make that user configurable, but I don't see that as particularly valuable to justify adding complexity to the interface.  If I did anything, I think it would be hard-coded descriptive names.  The fact that it might cause a flood of support issues tipped the scales against the idea.

Awesome. Can't wait for it.

If changing the name could cause problems then I agree it should probably be left as is. It's actually pretty cool as Epsilon come to think of it. It's the only felt visible mark that a keyboard is using your tool/firmware. I like it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 27 August 2014, 09:49:11
Personally, I would like my Filco to show up as a Filco.  Maybe I'll take another look at it when I have time.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: geniekid on Wed, 27 August 2014, 16:46:13
I have access to a Lightsaver that can be used for testing if you're still looking for a volunteer.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 27 August 2014, 17:11:00
I have access to a Lightsaver that can be used for testing if you're still looking for a volunteer.

Nice!  Challenge accepted.

Step 1: Have you programmed a custom firmware on to your board?  If not, make sure you can do so before we start.  I want you to be able to go back to a known-good configuration if any of my builds don't work.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: dorkvader on Sat, 30 August 2014, 10:38:25
Any chance of getting lightsaver support?

Yes there is.  It's almost supported already, because it is so similar to KMAC and Orion.  All I'd need is a volunteer to do the testing, because I don't own that hardware.
I have a lightsaver V1 and am happy to test, just send me the .hex or other file(s)

I have access to a Lightsaver that can be used for testing if you're still looking for a volunteer.

Nice!  Challenge accepted.

Step 1: Have you programmed a custom firmware on to your board?  If not, make sure you can do so before we start.  I want you to be able to go back to a known-good configuration if any of my builds don't work.
Currently using 02d's firmware and was using a build of duck's firmware before that.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tyvar1 on Sat, 30 August 2014, 13:10:18
Is there any way to use ĺäö?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Sat, 30 August 2014, 13:16:04
Is there any way to use ĺäö?
It's been discussed before ... a few pages back, I think.

The software itself doesn't display the localized characters, it displays the US characters. But the scancodes for those characters are interpreted by the OS anyway so they're there, you just have to find out what your keyboard is sending when you type that.

One solution might be, if you're in windows, add 'US' as an input language, set notepad to accept input as US, and type all of the printable characters. Those are what you want to set this software to send for a given key, to send the character you want.

Unless you're using ALT-#num combos, in which case ... maybe you want to save a few macros for doing that for you ;)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tyvar1 on Sat, 30 August 2014, 13:35:11
Is there any way to use ĺäö?
It's been discussed before ... a few pages back, I think.

The software itself doesn't display the localized characters, it displays the US characters. But the scancodes for those characters are interpreted by the OS anyway so they're there, you just have to find out what your keyboard is sending when you type that.

One solution might be, if you're in windows, add 'US' as an input language, set notepad to accept input as US, and type all of the printable characters. Those are what you want to set this software to send for a given key, to send the character you want.

Unless you're using ALT-#num combos, in which case ... maybe you want to save a few macros for doing that for you ;)
Awesome! thanks! well then i will get a JD40 keybaord and have a FN with ĺäö! :D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tyvar1 on Sat, 30 August 2014, 13:56:29
can you remapp as many times you can on a keyboard? (JD40)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Sat, 30 August 2014, 16:03:50
can you remapp as many times you can on a keyboard? (JD40)

I'm not sure I understand the question?

The teensy that holds the firmware (thus the keymap) has a limited number of write/erase cycles, but that's not affected by what source you get your firmware from.

 I believe most firmwares support 32 "layers" but macros often take up a function, thus a layer, each of their own.

As to using those layers, again earlier in I do believe this thread, I ask about switching between layers by holding & releasing keys (two FN buttons, lower layers define the other fn() key to be a lower layer yet) and 'Qaz said it should work but just try it and report back (still never made more than a second layer but if that 42% dvorak board goes public...)

Does any of this help any? If you still have question ... try asking them again using different words...?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tyvar1 on Sat, 30 August 2014, 17:34:10
can you remapp as many times you can on a keyboard? (JD40)

I'm not sure I understand the question?

The teensy that holds the firmware (thus the keymap) has a limited number of write/erase cycles, but that's not affected by what source you get your firmware from.

 I believe most firmwares support 32 "layers" but macros often take up a function, thus a layer, each of their own.

As to using those layers, again earlier in I do believe this thread, I ask about switching between layers by holding & releasing keys (two FN buttons, lower layers define the other fn() key to be a lower layer yet) and 'Qaz said it should work but just try it and report back (still never made more than a second layer but if that 42% dvorak board goes public...)

Does any of this help any? If you still have question ... try asking them again using different words...?
Thank you for your help! what i mean is if i can program my keyboard more than one time?
"The teensy that holds the firmware (thus the keymap) has a limited number of write/erase cycles"
i think this is the answer of my question.
How many times is that?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Igthorn on Sat, 30 August 2014, 17:40:48
http://www.atmel.com/Images/Atmel-7766-8-bit-AVR-ATmega16U4-32U4_Summary.pdf
Quote
Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Sat, 30 August 2014, 17:42:55
Quote from: AKmalamute
The teensy that holds the firmware (thus the keymap) has a limited number of write/erase cycles
i think this is the answer of my question.
How many times is that?

It varies, and is dependent on varies I'm not privy to, but I've heard numbers varying everywhere from 1,000 to 100,000 cycles.

And you can always read from them ... it's just that that kind of non-volatile memory stop accepting write commands, sector by sector, after awhile. It's why some SSD hard drives disable themselves after a couple of years' runtime (though I guess they stopped doing that because even those SSDs can be used for five straight years normally without serious troubles).

Uh, like what igthorn just said.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tyvar1 on Sat, 30 August 2014, 17:52:58
http://www.atmel.com/Images/Atmel-7766-8-bit-AVR-ATmega16U4-32U4_Summary.pdf
Quote
Write/Erase Cycles: 10,000 Flash/100,000 EEPROM

Quote from: AKmalamute
The teensy that holds the firmware (thus the keymap) has a limited number of write/erase cycles
i think this is the answer of my question.
How many times is that?

It varies, and is dependent on varies I'm not privy to, but I've heard numbers varying everywhere from 1,000 to 100,000 cycles.

And you can always read from them ... it's just that that kind of non-volatile memory stop accepting write commands, sector by sector, after awhile. It's why some SSD hard drives disable themselves after a couple of years' runtime (though I guess they stopped doing that because even those SSDs can be used for five straight years normally without serious troubles).

Uh, like what igthorn just said.
Awesome thank you! Now i just need to make a perfect layout for my JD40 that i just bought! Need to read alot about this program! :) :thumb:
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 02 September 2014, 20:25:22
You can reprogram as many times as you want.  I've reprogrammed my Epsilon literally hundreds of times.  The Flash write-cycle limit is way out in never-never land.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 02 September 2014, 20:28:00
I have a lightsaver V1 and am happy to test, just send me the .hex or other file(s)

Any chance of getting lightsaver support?

I have access to a Lightsaver that can be used for testing if you're still looking for a volunteer.

I'll probably come up with a binary this weekend.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: dorkvader on Tue, 02 September 2014, 22:36:15
I have a lightsaver V1 and am happy to test, just send me the .hex or other file(s)

Any chance of getting lightsaver support?

I have access to a Lightsaver that can be used for testing if you're still looking for a volunteer.

I'll probably come up with a binary this weekend.

No rush, but I'll try it right away and give feedback.

I'm going on vacation around then, so I might not be able to do it. I'll make sure to bring the KB and a USB cable, and hopefully we'll have internet.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: geniekid on Wed, 03 September 2014, 00:03:51
I have access to a Lightsaver that can be used for testing if you're still looking for a volunteer.

Nice!  Challenge accepted.

Step 1: Have you programmed a custom firmware on to your board?  If not, make sure you can do so before we start.  I want you to be able to go back to a known-good configuration if any of my builds don't work.

Sorry I didn't respond sooner.  Yes, the Lightsaver I have is currently running TMK.  Should I try the latest beta?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 03 September 2014, 05:59:34
It isn't created yet.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tyvar1 on Wed, 03 September 2014, 06:02:59
You can reprogram as many times as you want.  I've reprogrammed my Epsilon literally hundreds of times.  The Flash write-cycle limit is way out in never-never land.
Awesome! :D
Saw that JD40 isn't tested yet. Do you think it will be safe to use this program with it? :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 03 September 2014, 06:16:27
Sure its safe.  If it doesn't work, you just hit the reset switch and program the old code on to it.  It probably works though. I think someone tried it
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jorgenslee on Wed, 03 September 2014, 06:22:02
Sorry I didn't respond sooner.  Yes, the Lightsaver I have is currently running TMK.  Should I try the latest beta?

Does Lightsaver and other Duck custom have reset button in case you want to reset the controller?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 03 September 2014, 06:25:47
Yes.  Instead of a jumper or a physical switch, those boards have a key you press down when you plug it in. On KMAC it's Caps. I think Orion it's delete.  Have to search around for the lightsaver key.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tyvar1 on Wed, 03 September 2014, 06:41:09
Sure its safe.  If it doesn't work, you just hit the reset switch and program the old code on to it.  It probably works though. I think someone tried it
Sound good! Thanks you!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: pichu23 on Wed, 03 September 2014, 06:50:24
hiya ! thanks for the firmware.
I just reprogrammed my techkeys card. managed to assign what i wanted but the Leds are no longer working. Any idea how can I get it fixed ? :D thanks
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 03 September 2014, 07:13:52
hiya ! thanks for the firmware.
I just reprogrammed my techkeys card. managed to assign what i wanted but the Leds are no longer working. Any idea how can I get it fixed ? :D thanks

The Easy AVR USB firmware is designed for keyboards and, obviously, works consistently across various hardware.  Techcard-specific software probably does interesting and fun things with the LEDs on that board, but my code just treats it like a normal keyboard.  Therefore the LEDs are used as backlights, if I remember correctly.  You'd have to turn them on by mapping something to BL_Enable.  I'm not sure why I configured it to off by default.  Probably because I found the LEDs to be too bright and thus annoying to me at night.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 03 September 2014, 07:25:39
I just took a peek at the code and apparently I already started Lightsaver at some point in the past and forgot about it... lol

[attachimg=1]
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: pichu23 on Wed, 03 September 2014, 07:59:29
hiya ! thanks for the firmware.
I just reprogrammed my techkeys card. managed to assign what i wanted but the Leds are no longer working. Any idea how can I get it fixed ? :D thanks

The Easy AVR USB firmware is designed for keyboards and, obviously, works consistently across various hardware.  Techcard-specific software probably does interesting and fun things with the LEDs on that board, but my code just treats it like a normal keyboard.  Therefore the LEDs are used as backlights, if I remember correctly.  You'd have to turn them on by mapping something to BL_Enable.  I'm not sure why I configured it to off by default.  Probably because I found the LEDs to be too bright and thus annoying to me at night.

omg  :confused: i'll try and play around. hopefully i'll manage to get it back on  :))
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jorgenslee on Wed, 03 September 2014, 08:06:55
Yes.  Instead of a jumper or a physical switch, those boards have a key you press down when you plug it in. On KMAC it's Caps. I think Orion it's delete.  Have to search around for the lightsaver key.

Cool, will Duck Viper be also supported in the future? In lightsaver, can easy avr control the side leds? Also, what's the different mode for backlight LED? Sorry if this has been mentioned before but I can't find it in the OP. Thanks
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: dorkvader on Wed, 03 September 2014, 10:22:14
Yes.  Instead of a jumper or a physical switch, those boards have a key you press down when you plug it in. On KMAC it's Caps. I think Orion it's delete.  Have to search around for the lightsaver key.
Key to the right above backspace. Scroll lock in your picture.

There are some "LED groups" like the KMAC. The side LEDs are wired up as a "group", so presumably they're accessable. I'm fine even if not because I hate them until I can get them swapped out for a better colour (was thinking purple)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: pichu23 on Wed, 03 September 2014, 10:42:07
hiya ! thanks for the firmware.
I just reprogrammed my techkeys card. managed to assign what i wanted but the Leds are no longer working. Any idea how can I get it fixed ? :D thanks

The Easy AVR USB firmware is designed for keyboards and, obviously, works consistently across various hardware.  Techcard-specific software probably does interesting and fun things with the LEDs on that board, but my code just treats it like a normal keyboard.  Therefore the LEDs are used as backlights, if I remember correctly.  You'd have to turn them on by mapping something to BL_Enable.  I'm not sure why I configured it to off by default.  Probably because I found the LEDs to be too bright and thus annoying to me at night.

seems like i'm able to get the leds back on. any idea how to make them to be switched on on default ?  :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Eszett on Wed, 03 September 2014, 10:59:18
Stupid question: how to use (to program) layer1, layer2, layer3, etc. with Easy AVR?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 03 September 2014, 11:16:20
The side LEDs are supported, they are treated as a backlight group.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 03 September 2014, 11:17:25
hiya ! thanks for the firmware.
I just reprogrammed my techkeys card. managed to assign what i wanted but the Leds are no longer working. Any idea how can I get it fixed ? :D thanks

The Easy AVR USB firmware is designed for keyboards and, obviously, works consistently across various hardware.  Techcard-specific software probably does interesting and fun things with the LEDs on that board, but my code just treats it like a normal keyboard.  Therefore the LEDs are used as backlights, if I remember correctly.  You'd have to turn them on by mapping something to BL_Enable.  I'm not sure why I configured it to off by default.  Probably because I found the LEDs to be too bright and thus annoying to me at night.

seems like i'm able to get the leds back on. any idea how to make them to be switched on on default ?  :)

unfortunately not possible on the techcard :(  It's too small to support the config console.  I guess I'll try to change it on the next version so they are on by default.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 03 September 2014, 11:22:17
Stupid question: how to use (to program) layer1, layer2, layer3, etc. with Easy AVR?

It should be obvious.  I suspect you are either not using it correctly or you don't understand the concept.  I know your first language is not english, perhaps I'm not understanding you.

The FN keys are modifiers, like the Shift key.  When you hold one of the FN keys, subsequent presses will access the different layers.  The FN key accesses the FN layer in the software.  FN2 accesses Layer 2.  FN3 for layer 3 and so on.

You map out the layers in the keymapper by selecting them at the top.  Most of the layers start empty.  I suggest using copy/paste to copy the map from a different layer to get started.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: pichu23 on Wed, 03 September 2014, 11:26:09
hiya ! thanks for the firmware.
I just reprogrammed my techkeys card. managed to assign what i wanted but the Leds are no longer working. Any idea how can I get it fixed ? :D thanks

The Easy AVR USB firmware is designed for keyboards and, obviously, works consistently across various hardware.  Techcard-specific software probably does interesting and fun things with the LEDs on that board, but my code just treats it like a normal keyboard.  Therefore the LEDs are used as backlights, if I remember correctly.  You'd have to turn them on by mapping something to BL_Enable.  I'm not sure why I configured it to off by default.  Probably because I found the LEDs to be too bright and thus annoying to me at night.

seems like i'm able to get the leds back on. any idea how to make them to be switched on on default ?  :)

unfortunately not possible on the techcard :(  It's too small to support the config console.  I guess I'll try to change it on the next version so they are on by default.

no rush sir, thank you for this firmware ! it's really nice to use. many possibilities are available  ;D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Eszett on Wed, 03 September 2014, 12:50:27
@metalliqaz Thanks, I didn’t get that “Fn” means function layer 1, while “layer 2” means function layer 2. The naming is abit confusing ...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 03 September 2014, 12:57:30
@metalliqaz Thanks, I didn’t get that “Fn” means function layer 1, while “layer 2” means function layer 2. The naming is abit confusing ...

Sorry 'bout that.  It is explained in the documentation, though.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Melvang on Sun, 07 September 2014, 01:07:26
Is it normal for Chrome to detect the .zip file to be malicious?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: pichu23 on Sun, 07 September 2014, 03:59:39
Is it normal for Chrome to detect the .zip file to be malicious?

for me yes, i used IE to download the file.
but there's nth wrong with the file it seems, i'm not too sure why chrome detected it that way.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: StylinGreymon on Sun, 07 September 2014, 04:24:06
Anyone tried this with a Light Pad?
Any plans for Eagle/Viper support?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Melvang on Sun, 07 September 2014, 08:48:08
Is it normal for Chrome to detect the .zip file to be malicious?

for me yes, i used IE to download the file.
but there's nth wrong with the file it seems, i'm not too sure why chrome detected it that way.

Thanks Pichu23, I will let me run it and download it but it makes damn sure to let me know its opinion of the file first.

Are any of the supported boards 105 key layout?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: StylinGreymon on Tue, 09 September 2014, 00:03:56
Uh...
Hmm.

I may have just bricked my Light Pad...

Anyone wanna take crack at helping me?
I'm warning you now, I'm terrible at troubleshooting.

Ehehe...
Nevermind... :-[
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: StylinGreymon on Tue, 09 September 2014, 00:39:01
That was fun.
Anyway, I'm trying to map my Light Pad to this:
(http://i.imgur.com/VwDHt1K.png)
Basic stuff.
Using the GHpad as a base, as it's the only numpad in the options.

However, after flashing the firmware, my / and * keys seem to be acting as BL_ENABLE, and my FN key is acting like BL_DIMMER.
Also, none of the other keys send any scancodes.

Any thoughts?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Igthorn on Tue, 09 September 2014, 01:00:27
Lightpad (https://github.com/tmk/tmk_keyboard/blob/master/keyboard/lightpad/matrix.c)
Code: [Select]
/* Row configuration
*
* row: 0 1 2 3 4 5
* pin: PD0 PD1 PD2 PD3 PD5 PB7
*
* Firmware uses pin PE2
*/
/* Column configuration
*
* col: 0 1 2 3
* pin: PF0 PF1 PC7 PC6
*/

GHpad (https://github.com/regack/4x6/tree/4x5 at least I think this is the correct one for the GHpad..)
Code: [Select]

    ROW1 = PD0 / pin 18
    ROW2 = PD1 / pin 19
    ROW3 = PD2 / pin 20
    ROW4 = PD3 / pin 21
    ROW5 = PD4 / pin 25

    ROW6 = PD5 / pin 22

    COL1 = PF0 / pin 41
    COL2 = PF1 / pin 40
    COL3 = PE6 / pin 1
    COL4 = PC7 / pin 32

Some of the pins used are different, so it's probably impossible to get the GHpad layout to work on a Lightpad.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: StylinGreymon on Tue, 09 September 2014, 01:05:15
Shows what I know.

Thanks.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 09 September 2014, 05:41:02
Lightpad isn't supported, as Igthorn expertly showed
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: StylinGreymon on Tue, 09 September 2014, 17:24:05
Lightpad isn't supported, as Igthorn expertly showed
Any plans to change that?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 09 September 2014, 17:29:26
I live adding support for new hardware.  First I need to buy a house and move into it, though
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Tue, 09 September 2014, 18:26:08
JD40 question/feature request:

Is there a way to assign some Teensy pins to light when Fn states are engaged?

So while FN1 is on, I can light a red LED, and when FN2 is on, I can light a blue LED, etc?

Thanks as always!

 - Ron | samwisekoi
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 09 September 2014, 21:00:06
Not currently supported but could probably be added
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Wed, 10 September 2014, 04:42:47
Not currently supported but could probably be added

IIRC something like this was implemented for the Phantom, right? (Personal reminder: Need to update the Phantom firmware)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Defying on Wed, 10 September 2014, 14:25:56
I'm trying to use your firmware with my GHpad from this GB: http://geekhack.org/index.php?topic=59950.0

Flashed the firmware successfully, it's detected by the PC and everything, just doesn't actually function. Is this firmware compatible with this revision of GHpad?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 10 September 2014, 18:11:49
I'm trying to use your firmware with my GHpad from this GB: http://geekhack.org/index.php?topic=59950.0

Flashed the firmware successfully, it's detected by the PC and everything, just doesn't actually function. Is this firmware compatible with this revision of GHpad?

Apparently that board was modified by the person who made them.  I don't know what changes were made, so it is impossible for me to know if it is supported.  Of course, the original doesn't even have confirmed support, so it isn't really clear why it doesn't work.  If you want to be my guinea pig we might be able to get it supported.  I'm going to need a lot of help, since I have no hardware reference, though.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Wed, 10 September 2014, 18:31:31
I'm trying to use your firmware with my GHpad from this GB: http://geekhack.org/index.php?topic=59950.0

Flashed the firmware successfully, it's detected by the PC and everything, just doesn't actually function. Is this firmware compatible with this revision of GHpad?

Apparently that board was modified by the person who made them.  I don't know what changes were made, so it is impossible for me to know if it is supported.  Of course, the original doesn't even have confirmed support, so it isn't really clear why it doesn't work.  If you want to be my guinea pig we might be able to get it supported.  I'm going to need a lot of help, since I have no hardware reference, though.

I bought two before I designed the GH36, and would be happy to send you one.

Shall I?

 - Ron | samwisekoi
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Defying on Wed, 10 September 2014, 20:06:04
I'm trying to use your firmware with my GHpad from this GB: http://geekhack.org/index.php?topic=59950.0

Flashed the firmware successfully, it's detected by the PC and everything, just doesn't actually function. Is this firmware compatible with this revision of GHpad?

Apparently that board was modified by the person who made them.  I don't know what changes were made, so it is impossible for me to know if it is supported.  Of course, the original doesn't even have confirmed support, so it isn't really clear why it doesn't work.  If you want to be my guinea pig we might be able to get it supported.  I'm going to need a lot of help, since I have no hardware reference, though.
I'm willing to do some testing!
Also, the firmware on regack's repo ( https://github.com/regack/4x6/tree/GHpad/firmware ) seems to work perfectly fine. Not sure about the full backlighting support on this PCB revision, however.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 16 September 2014, 09:03:45
Hi guys, just checking in to say that I closed on my house on Friday.  It's a very busy time so I'll be unavailable for a bit (as you may have noticed).  I will return, though.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Tue, 16 September 2014, 10:42:36
Congratulations!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Tue, 16 September 2014, 11:53:53
Hi guys, just checking in to say that I closed on my house on Friday.  It's a very busy time so I'll be unavailable for a bit (as you may have noticed).  I will return, though.

Congratulations!

FYI, my GH36 burned with keymap_20140902 works fine on a Windows PC, but is not even recognized by my Linux PC.  The LEDs illuminate (WASD and on Teensy) but no scancodes are passed, not does it show up as a USB device.

Works great on a real Windows PC, however.

I'll try it on other Linux PCs at work.

Can you please comment when you get a chance?

Thanks in advance,

 - Ron | samwisekoi

[update]
Worked fine on another Linux box.  I'll try other USB ports when I get it back home.  Sadly, the machine it doesn't work on is my primary computer, and the one where I do all my keyboard/PCB designs.  <sigh>  Prototyping, I suppose...
[/update]
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 16 September 2014, 12:21:08
Thanks, guys.

FYI, my GH36 burned with keymap_20140902 works fine on a Windows PC, but is not even recognized by my Linux PC.  The LEDs illuminate (WASD and on Teensy) but no scancodes are passed, not does it show up as a USB device.

Use your windows machine to go into the debug console and put the keyboard into simple mode (or something like that, I forgot what exactly I called it).  See if that helps on the linux box.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Tue, 16 September 2014, 13:19:34
Thanks, guys.

FYI, my GH36 burned with keymap_20140902 works fine on a Windows PC, but is not even recognized by my Linux PC.  The LEDs illuminate (WASD and on Teensy) but no scancodes are passed, not does it show up as a USB device.

Use your windows machine to go into the debug console and put the keyboard into simple mode (or something like that, I forgot what exactly I called it).  See if that helps on the linux box.

Debug console?  Windows debug console?  Teensy debug console? Keymapper debug console?

Thanks!

 - Ron
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Tue, 16 September 2014, 13:44:00
Debug console?  Windows debug console?  Teensy debug console? Keymapper debug console?

I've just read the help pages for the 9/2 beta, and I think I know what's going on but don't have a programmable keyboard here to test it.

in 'Qaz software, you can map a key to the console. Then, you build and flash the keyboard with the has-a-console firmware, then fire up notepad or the like and pretend you're at a teletype. Press the debug key, and it will type out a menu, and you can use notepad to enter commands, such as toggle basic mode (help file does say its called that). Save the config changes (maybe?) and reboot the PC -- try using it then.

I get a similar problem though, with my ergodox. During boot, it goes to a grub menu, and the ergodox arrow keys are useless. But if I warm boot, sometimes it will work. If I have a regular USB keyboard attached when I warm boot (never first the first, cold boot) then the arrow keys on the ergodox (mass drop / benblazek code) works fine.

 I just sold my phantom but I've warned the user to follow this and a few other threads so maybe he's reprogrammed his by now...I'll ask about it, actually.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Tue, 16 September 2014, 14:12:12
Debug console?  Windows debug console?  Teensy debug console? Keymapper debug console?

I've just read the help pages for the 9/2 beta, and I think I know what's going on but don't have a programmable keyboard here to test it.

in 'Qaz software, you can map a key to the console. Then, you build and flash the keyboard with the has-a-console firmware, then fire up notepad or the like and pretend you're at a teletype. Press the debug key, and it will type out a menu, and you can use notepad to enter commands, such as toggle basic mode (help file does say its called that). Save the config changes (maybe?) and reboot the PC -- try using it then.

I get a similar problem though, with my ergodox. During boot, it goes to a grub menu, and the ergodox arrow keys are useless. But if I warm boot, sometimes it will work. If I have a regular USB keyboard attached when I warm boot (never first the first, cold boot) then the arrow keys on the ergodox (mass drop / benblazek code) works fine.

 I just sold my phantom but I've warned the user to follow this and a few other threads so maybe he's reprogrammed his by now...I'll ask about it, actually.

Thanks!  This was the hint I needed.

 - Ron | samwisekoi

[update]
Okay, that was really cool.  An important note that isn't covered in the doc (Easy_keymap_2014mmdd/doc/console.txt) is that you must also have the digits 0-9 and the Enter key mapped.  This would normally not require mentioning, but I have only 1-5 on my GH36 map, and I just happened to add 6-0 to the function layer this morning.

Anyhow, follow the doc, make sure you have 0-9 and Enter mapped, and it works.  Now to see if this fixed the problem with my main Linux machine at home.
[/update]
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 16 September 2014, 14:47:02
Heh. I chose numbers and Enter because those are keys that should be on both keyboards and keypads.  I didn't consider your Frankenstein creation
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Tue, 16 September 2014, 15:11:58
Heh. I chose numbers and Enter because those are keys that should be on both keyboards and keypads.  I didn't consider your Frankenstein creation

Yep.  I never need numbers higher than 4 to choose a weapon.  But I added an FN layer for use with my PCB-layout program, and that needs all the numbers.

I am going to put in a locking switch for FN, so it can be a gaming pad normally and then transform with the push of a button.

I hid console and boot on a hard-to-reach FN2 layer, because they seem to be useful to keep in place.

(Very impressed by the console, BTW.)

 - Ron | samwisekoi
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: dorkvader on Tue, 16 September 2014, 21:01:42
yeah I used one for the first time on a gon NerD faceW PCB: Very cool to use!

<3 the text console.

Congrats on closing on the house, metalliqaz! I would love to bake a pie and visit you sometime.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 16 September 2014, 21:41:43
Oh does the Nerd have one too?  Interesting.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: dorkvader on Tue, 16 September 2014, 23:01:52
Oh does the Nerd have one too?  Interesting.

No, it was a faceW.

I think all the winkeyless.kr boards have it.

My bad.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Arcoril on Wed, 17 September 2014, 00:05:49
Hi guys, just checking in to say that I closed on my house on Friday.  It's a very busy time so I'll be unavailable for a bit (as you may have noticed).  I will return, though.

Hey, that's awesome! Take it easy and we'll see you again when you can take a breath. :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Euf0ria on Wed, 17 September 2014, 01:21:07
Hi metalliqaz,
Im using your latest version of AVR and would like to report an issue. (there's workarounds, so not a big problem)
Scenario:
I use the layout for HID liberation device with ISO and my keyboard is in Swedish with Big ISO enter and ĹÄÖ which works fine.
When I then program some macros there's an issue with the mapping. For example I want a macro writing an "[ IMG ]" tag. the "[" is placed on alt+8 on a swedish layout but just a click on "[" for non-swedish layout. In my case the alt+8 gets taken for an alt code and i end up with a "◘" which is alt+8 when typed on the numpad.
I then thought: "great, lets use altcodes instead and I got ahead writing alt codes for [ IMG ][ / img ], then i got problem with multiple altcodes in a row. and for .\ALT(91).\ALT(93) which should get me [] instead wrote "Ú" which is the combined altcode for 9193.

Summary: Two problems: 1.macro seems to use numpad for my number-row that is not set as numpad. 2. multiple altcodes in a row gets taken for a summary of the codes.

Ps. Workaround is to write a letter followed by a .\DEL, to break the pattern between the alt codes, but this renders a tiny bit more code to memory.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Wed, 17 September 2014, 08:43:06
Update with problem connecting to Linux PC:

Re-loaded GH36 keypad with latest (20140902) version.  Set keyboard to "basic".  Still didn't work on front-mounted USB 3.0 ports.

Moved cable to I/O plate-mounted USB 2.0 port and voila!  We have keypad recognition.

Thanks for your help, y'all

 - Ron | samwisekoi
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Flamingchook on Wed, 17 September 2014, 22:18:25
Didn't realize that the F13-F24 scancodes had already made it into the latest beta version. Thanks metalliqaz!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Thu, 18 September 2014, 17:40:08
Feature Request: LED Indicators for Fn and Fn2 Layers
...for when you get the time after sorting the home purchase!

For the JD40 and the GH36 (and other boards where possible) please enable the following logic for unused pins:

When the "Fn layer" is active (via key-down, locking key down, software "lock" or otherwise) bring PD4 high to enable an LED to light.

When "Fn2 layer" is active (via key-down, locking key down, software "lock" or otherwise) bring PD5 high to enable an LED to light.

These two pins on the Teensy are on the end, and unused by both the JD40 and GH36, and are both physically simple to access.  They are unpinned when a "Teensy with Pins" is purchased, and so are very easy to use.  Also, since they are normally unused, this additional logic will have no impact on users not seeking this enhancement.

Thanks in advance!

 - Ron | samwisekoi

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 18 September 2014, 18:22:11
Yeah I've wanted to add that for a while
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Fri, 19 September 2014, 02:00:33
The Fn LED feature is available for the Phantom, right? I can't recall.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Laser on Sun, 21 September 2014, 07:17:12

Great piece of software!

I used the stable version with QFR Frosty Flake v1; after reading all that was to read (internal docs, this thread), configuration was very easy, and all went as intended from the first try. I assigned the 'start boot mode' event to Fn+Pause, the led and winlock for Fn+F9 works well, i start mapping arrows to wasd and to hhkb-style "[;'/" - so i can say - great stuff! Thank you very much for working on it.

( BTW, i do also have a 60% keyboard with a faceU replica in it - if you every start poking with v-usb ... :D )
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Mon, 06 October 2014, 10:14:12
I can't seem to get this working. I've built my layout file, source and firmware but after programming the keyboard using Flip it doesn't register keypresses. What's the best way to debug this? It was working before, I can't for the life of me figure out how I got it loaded last time :(

I'm using the GH60 default pure layout if that helps (pcb is a GH60 revB), version 3.4.7 of Flip. I've selected ATMEGA32U4 from the list of AVR's in Flip and all 4 of the steps pass when I click run.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Mon, 06 October 2014, 10:49:26
Oh and the keyboard shows up as a HID keyboard device after I click start in Flip.

Edit: tried the release and beta versions, same result with both. Debug firmware doesn't seem to do anything either.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Mon, 06 October 2014, 20:39:04
Somebody... anybody... help, I fell down a well!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 06 October 2014, 21:29:50
Hmm, it used to work?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 06 October 2014, 21:35:13
First, when you press the boot mode key combination, does it go into boot mode?  That would mean that the keyboard is working but it is locking itself or using a blank layout for some reason.
Does it go directly into boot mode after plugging it in?  That would be a bad firmware load.
Have you ever played with the debug console?  If you think you screwed up the settings, you can clear them by holding Enter down when you plug it in.
Do the LEDs do anything?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Mon, 06 October 2014, 22:42:41
Yep definitely worked before, was only trying to remap some of the mods. I haven't tried the boot mode key, I'll try and give that a go when I get home. I should just put the cursor in a notepad to test boot mode right?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 07 October 2014, 06:28:16
That's debug console.  Boot mode is for reprogramming
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Tue, 07 October 2014, 08:42:55
How would I know if it's in boot mode once I've pressed it? It shows up as a HID keyboard device when plugged in initially.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 07 October 2014, 08:54:52
Its on boot mode if FLIP can connect.

Are you using the same program to build your firmware as before, when it worked?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Tue, 07 October 2014, 09:00:12
Its on boot mode if FLIP can connect.

Are you using the same program to build your firmware as before, when it worked?
Ah cool, I'll test that later and see if it works. I'm pretty sure I programmed it using this last time but it's possible I did it with avrdude or something.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Wed, 08 October 2014, 07:35:27
Okay so I've loaded up another hex file with the space set to boot mode, hitting it after reconnecting doesn't make any changes. I can still get into boot mode with the button on the rear of the pcb though.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tjcaustin on Fri, 17 October 2014, 22:13:18
I'm having issues with this jd40 I'm working on.  I made a layout hex, txt and dat no problem.  The teensy loader recognizes teensy fine and will flash other things to it with no issue (ex - the fast blink led hex that teensy provides).  But it won't recognize keypresses after loading the layout hex files from here.  Am I missing something?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Fri, 17 October 2014, 22:18:43
I'm having issues with this jd40 I'm working on.  I made a layout hex, txt and dat no problem.  The teensy loader recognizes teensy fine and will flash other things to it with no issue (ex - the fast blink led hex that teensy provides).  But it won't recognize keypresses after loading the layout hex files from here.  Am I missing something?
Sounds like the same problem I'm having!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tjcaustin on Fri, 17 October 2014, 23:15:32
I'm having issues with this jd40 I'm working on.  I made a layout hex, txt and dat no problem.  The teensy loader recognizes teensy fine and will flash other things to it with no issue (ex - the fast blink led hex that teensy provides).  But it won't recognize keypresses after loading the layout hex files from here.  Am I missing something?

Using the beta build fixed that issue fine.  No problems now.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Fri, 17 October 2014, 23:20:06
I'm having issues with this jd40 I'm working on.  I made a layout hex, txt and dat no problem.  The teensy loader recognizes teensy fine and will flash other things to it with no issue (ex - the fast blink led hex that teensy provides).  But it won't recognize keypresses after loading the layout hex files from here.  Am I missing something?

Using the beta build fixed that issue fine.  No problems now.
Thought I tried that but maybe I didn't, cheers for the heads up!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Sat, 18 October 2014, 10:11:11
No luck with either of the beta releases, going to try flashing the hex with dfu and see if that works.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Sat, 18 October 2014, 12:15:05
Don't know if I was doing something wrong using this but I just managed to get the GH60 working again with a hex file I generated with the tmk makefile. Got it up and running first shot in Flip, back to a stock Poker layout because I suck at modifying those C files but I'll crack on tomorrow and hopefully get it configured the way I want soon.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: zennasyndroxx on Sat, 18 October 2014, 13:23:44
The beta works fine with my phantom as well.

Also, what does the password generator exactly do? Does it generate a random string of characters?

Tried that in notepad but theres nothing.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 18 October 2014, 15:49:20
I have not documented or explained the PW generator.  I made it as an experiment for myself.  I'll gave to provide a back story for that...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 18 October 2014, 15:50:04
Bueller, if I give you some test builds, will you try them for me?  I don't have a gh60 of my own to test with
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Sat, 18 October 2014, 19:59:40
Bueller, if I give you some test builds, will you try them for me?  I don't have a gh60 of my own to test with
Yeah sure thing man, happy to help!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Flamingchook on Thu, 23 October 2014, 01:18:27
The latest beta doesn't have support for the red scarf I/AboStudio GHPad (http://geekhack.org/index.php?topic=59950.0) yet does it? Because it's not working for me.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: StylinGreymon on Sun, 26 October 2014, 02:29:45
Will there be Duck Eagle/Viper support?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: exfiltrate on Mon, 27 October 2014, 23:17:56
Does this work with the ergodox? I was using the massdrop tool, but honestly it sucks compared to this. Half of the functions don't work.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 28 October 2014, 08:04:31
The latest beta doesn't have support for the red scarf I/AboStudio GHPad (http://geekhack.org/index.php?topic=59950.0) yet does it? Because it's not working for me.

It doesn't.  I don't have that hardware, so porting is time consuming and difficult.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 28 October 2014, 08:05:00
Will there be Duck Eagle/Viper support?

I would like to add that, but I need someone with the hardware to work with.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 28 October 2014, 08:05:44
Does this work with the ergodox? I was using the massdrop tool, but honestly it sucks compared to this. Half of the functions don't work.

No it doesn't.  I don't own an ergodox, and although I'm pretty sure it would work, I don't have any support for the half-to-half connection.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Flamingchook on Tue, 28 October 2014, 08:15:39
The latest beta doesn't have support for the red scarf I/AboStudio GHPad (http://geekhack.org/index.php?topic=59950.0) yet does it? Because it's not working for me.

It doesn't.  I don't have that hardware, so porting is time consuming and difficult.

Ah ok. I believe the TMK GHpad firmware works if that helps otherwise I can send you my extra pcb if you were interested in adding support.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: wes1099 on Tue, 28 October 2014, 19:01:14
We (you?) should find a way to get support for the new infinity keyboard. Just an idea, but it would be awesome to be able to use this instead of the evil web app.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: dorkvader on Tue, 28 October 2014, 19:20:58
We should find a way to get support for the new infinity keyboard. Just an idea, but it would be awesome to be able to use this instead of the evil web app.

inifinity KB uses a different microcontroller.

Still I agree: would be awesome to have some different firmware options for it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: wes1099 on Tue, 28 October 2014, 19:22:52
We should find a way to get support for the new infinity keyboard. Just an idea, but it would be awesome to be able to use this instead of the evil web app.

inifinity KB uses a different microcontroller.

Still I agree: would be awesome to have some different firmware options for it.
I had not though that far yet. Good point.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 28 October 2014, 22:15:38
What does it use?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: SpAmRaY on Tue, 28 October 2014, 22:24:26
What does it use?

https://mchck.org/
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: dorkvader on Tue, 28 October 2014, 22:51:56
What does it use?

I think the biggest difference is that it's ARM.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Kaibz on Wed, 29 October 2014, 07:29:37
Hi metalliqaz,

First congratulations for you awesome driver.

I'm learning Python right now, i just wonder, is there a reason why there are ten layers max available? Is it teensy 2.0 related or just a decision?

Also if i may, is there anything i should read or learn once i finished my python course to understand how to make keyboard-teensy(ATmega or ARM) related drivers?

Thank you.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 29 October 2014, 12:28:37
Hi metalliqaz,

First congratulations for you awesome driver.

I'm learning Python right now, i just wonder, is there a reason why there are ten layers max available? Is it teensy 2.0 related or just a decision?

Also if i may, is there anything i should read or learn once i finished my python course to understand how to make keyboard-teensy(ATmega or ARM) related drivers?

Thank you.

The firmware is written in C.  Only the keymapper is made in Python, and it's not particularly good python code at that.  It grew from a very basic program to a more complicated multi-purpose GUI gradually, which means there was no planning of a good architecture.  Still, it works well enough.  You can simply red through the code to get an idea for how it works, but that won't give you much insight into the firmware, and it doesn't tell you anything about "drivers".  Most everyone here uses standard USB HID interfaces, which means you don't need any special drivers to get the keyboard to work with Windows/Linux/Mac.

The reason there are only ten layers is because the ATmega microcontrollers do not have huge amounts of memory so the number of layers has to be capped.  10 is just a nice round number.

Embedded software is my day job, so I already had the skills to make the keyboard control firmware with little trouble.  If you are starting from scratch, you're going to need more training than just python.  I'd suggest some kind of Arduino projects if you're a beginner.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Kaibz on Wed, 29 October 2014, 16:22:23
Thank you for the detailed answer metalliqaz.

One last question if i may, i understand that embedded software is your actual job, and that the firmware is written in C and that i should try some Arduino projects first, but would you actually suggest that i stop learning Python and switch to learning C instead? I'm asking this because i suppose that writing a firmware using the "Arduino language" wouldn't be good enough and that the only effective way would be to use C ?

I promise i will not ask more questions.

Cheers.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: julle on Tue, 04 November 2014, 10:42:51
I have a problem with firmware generated with this software: I'm trying to flash an 88-key layout to the Pegasus hoof controller. However, when I try using dfu-programmer for flashing I get this error:


Code: [Select]
Error reading line 1319.

Apparently, this is the last line in the hex file. When I use the Atmel FLIP for flashing, I have no problems at all.
Does anyone have any ideas what this might be about? I'm much more comfortable with using dfu-programmer than using Atmel flip (due to the bundled JRE).
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Melvang on Sun, 09 November 2014, 00:35:37
Can someone post a pic of a key being used as dual role please?  I am attempting to use space bar as dual role with Fn while being held down.  This is my first attempt at using it, on top of trying this with a JD40.  Just want to make sure I am setting this up correct.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: ninethirty on Fri, 21 November 2014, 10:38:43
Thanks for the firmware! It's lovely... I got a Frosty Flake v2 in the mail and had it programmed the next day. I'm awash in layout options now...

I did manage to program the board using dfu-programmer in Linux. I think someone posted earlier that they were having issues with it.  Two notes:

1.) You have to run dfu-programmer as root for it to detect the device. Otherwise it will always tell you "no devices found" 

2.) It refuses to read EasyAVR's hex as written. The error message points to the last line in the file.  It seems that EasyAVR isn't terminating the line in the way that dfu-programmer expects. Easy fix: open the hex file in a text editor and add a newline at the end of last line in the file. It will then work.

Hope that helps someone
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: julle on Fri, 21 November 2014, 17:13:03
Thank you very much for that observation! That's the fix! (Adding the new line, I mean.)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: cloud_171 on Wed, 03 December 2014, 09:49:27
Is there a way to send the numpad scancodes for 0-9 when writing a macro?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swornxin on Thu, 04 December 2014, 17:45:56
Is this easy to do?  Want to remap the Phantom I have, but I've never done anything like this before.  Really nervous that I am going to mess the keyboard (that I haven't used yet) up. 
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: dorkvader on Thu, 04 December 2014, 20:11:23
Is this easy to do?  Want to remap the Phantom I have, but I've never done anything like this before.  Really nervous that I am going to mess the keyboard (that I haven't used yet) up. 

1. Yep pretty easy. Typing this on my phantom running code from easy AVR so I know firsthand.
2. can't guarantee anything, but I've flashed KBs dozens of times and had no issues. Just press the button on the teensy, open the hex file in teensy loader, flash restart and then go.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Fri, 05 December 2014, 06:43:15
This is one of the most easiest firmware tools to use that I've tried. I'm typing on a Phantom based keyboard, running a hex generated from this tool. 3 layers with one caps-lock LED configured to show Fn layer.

If you have access to the Teensy reset button, then you can't mess up the keyboard. You can assign "Boot Mode" to any key on any layer, with this you can put the Teensy in boot mode, which is essentially like pressing the hardware reset button on the Teensy, just press they key, open Teensy loader and load hex file on it. Worst you can do is not have "Boot Mode" key assigned to any key on any layer, in this case you can use the hardware reset button on the Teensy.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Fri, 05 December 2014, 08:29:39
I'll have to give it another go with my GH60 and see if I can get it working, I really want to reprogram but screwing around with the TMK firmware does my head in.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: swornxin on Fri, 05 December 2014, 23:00:37
I'm sure nobody is super worried about whether or not I figured this out, but I got it with no issues!  For any noobies out there, this is incredibly easy.  One layer is just normal, layer 2 has all of my media controls, and layer 3 has the option to bootload and config.  Happy I gave this a go on my own!  Thanks everyone for the assurance that it would be easy!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Sat, 06 December 2014, 03:00:24
Obviously we are concerned, we as citizens of GeekHack are concerned for the satisfaction of every user.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: dorkvader on Sat, 06 December 2014, 21:21:49
I'm sure nobody is super worried about whether or not I figured this out, but I got it with no issues!  For any noobies out there, this is incredibly easy.  One layer is just normal, layer 2 has all of my media controls, and layer 3 has the option to bootload and config.  Happy I gave this a go on my own!  Thanks everyone for the assurance that it would be easy!

Yes, this is some good feedback. I'm glad you got everything working!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: ladoga on Thu, 11 December 2014, 05:28:46
Here is a quick and easy how-to for users of Debian and its derivatives (Ubuntu etc.) with Pegasus Hoof (or other atmega32u2 controllers). It should work for other Linux distros, BSDs and OSX, just use your native package manager instead of apt-get or download and install the programs manually.

1. Install dependencies and tools:
Code: [Select]
# apt-get update && apt-get install python python-tk unzip dfu-programmer
2. Download and install Easy AVR USB Beta (download link might change):
Code: [Select]
$ wget https://www.dropbox.com/s/yqgcxqwkk10ehsf/Easy_keymap_multiplatform_20140902.zip && unzip Easy_keymap*.zip
$ cd Easy_keymap* && chmod a+x Easy_keymap.sh

3. Run Easy_keymap.sh:
Code: [Select]
$ ./Easy_keymap.sh
Configure your layout and finally select File->Build Firmware. This generates the firmware hexfile for flashing. Unfortunately the last newline of the hexfile is in wrong format so we need to fix it. Open the hex file in your text editor of choice (I used vim), navigate to the end of the last line, insert return and save.

4. Flash the firmware.

I have a Filco TKL ISO with The Pegasus Hoof so hovering a fridge magnet next to the right Shift and Return keys resets the controller to the boot mode. When the keyboard stops working it's ready to be flashed. Looking at lsusb ("watch -n1 lsusb") one will also notice when the bootloader is listening.

So here we go:
Code: [Select]
# dfu-programmer atmega32u2 erase
# dfu-programmer atmega32u2 flash your_custom_firmware.hex
# dfu-programmer atmega32u2 start

That's it. Enjoy your new layouts.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: dorkvader on Thu, 11 December 2014, 21:57:19
Here is a quick and easy how-to for users of Debian and its derivatives (Ubuntu etc.) with Pegasus Hoof (or other atmega32u2 controllers). It should work for other Linux distros, BSDs and OSX, just use your native package manager instead of apt-get or download and install the programs manually.

Excellent guide and a wonderful first post. Welcome to geekhack!

I'll refer to this when I switch my "main" OS back over to linux. Windows is starting to annoy me too much and is on it's last straw.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Fri, 12 December 2014, 03:32:17
metalliqaz, I don't know how hard this would be or if possible at all, can you make a generic map option in the next iteration. Basically users can choose the column pins and the row pins, the tool will then create a rectangular grid with these columns and rows, and the user can then assign the keys to any grid item. This would be like the bomb. Possible option to choose LED indicator light pins and then choose when they glow as well.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Fri, 12 December 2014, 11:40:17
metalliqaz, I don't know how hard this would be or if possible at all

He's discussed it before and said he quickly gave up because of how many assumptions need to be made in addition to connecting columns and rows to pins.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Fri, 12 December 2014, 14:59:04
Hmmm. Is the discussion in this same thread? Sorry if I'm being lazy.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Fri, 12 December 2014, 15:22:35
Hmmm. Is the discussion in this same thread? Sorry if I'm being lazy.

Linked in about page 12, to another thread (https://geekhack.org/index.php?topic=56985) that Melvang started
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Fri, 12 December 2014, 15:58:28
This can be a start:
Matrix:
What IO pins are used, and what rows/cols do they correspond to?
Possible have a list of columns and rows, and users can select pin from a drop down menu the pin number
Are the rows/cols direct access or is there a decoder involved? (huge complexity increase)
With maximum hand-wired boards the users will not be using a decoder, I'm almost certain based on what I've seen.
Are they configured to read the rows or the columns?
This is easy, just have an option for the user to chose either one.
Is the matrix configured for pull-up or pull-down?
With AVRs, isn't it always in pull-up configuration using the inbuilt pull-up resistors.

LEDs:
What IO pins are used, and what LEDs do they correspond to?
Again, like the switch matrix a simple drop-down should suffice
Is each LED configured for pull-up or pull-down?
I don't quite follow this.
Are there backlights?
Checkbox should do.

Keymap:
What is the layout of the keys?
How does the configuration of the matrix relate to the layout of the keys?  (this is a biggie)
The best way in my opinion would be simple grid based on the users chosen columns and grids.
What are the default keys for the layout?
Don't bother with this.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Melvang on Fri, 12 December 2014, 16:05:50
This can be a start:
Matrix:
What IO pins are used, and what rows/cols do they correspond to?
Possible have a list of columns and rows, and users can select pin from a drop down menu the pin number
Are the rows/cols direct access or is there a decoder involved? (huge complexity increase)
With maximum hand-wired boards the users will not be using a decoder, I'm almost certain based on what I've seen.
Are they configured to read the rows or the columns?
This is easy, just have an option for the user to chose either one.
Is the matrix configured for pull-up or pull-down?
With AVRs, isn't it always in pull-up configuration using the inbuilt pull-up resistors.

LEDs:
What IO pins are used, and what LEDs do they correspond to?
Again, like the switch matrix a simple drop-down should suffice
Is each LED configured for pull-up or pull-down?
I don't quite follow this.
Are there backlights?
Checkbox should do.

Keymap:
What is the layout of the keys?
How does the configuration of the matrix relate to the layout of the keys?  (this is a biggie)
The best way in my opinion would be simple grid based on the users chosen columns and grids.
What are the default keys for the layout?
Don't bother with this.

This is pretty much how I envisioned it to work.  Though if you are flexible enough to work with an existing layout such as standard TKL you should be able to use the Phantom option but you just have to make sure your layout in the matrix matches the phantom pcb exactly.

This is where my issue falls into play.  Of the 3 layouts I am looking to hand wire, non of the physical layouts are in any of the preconfigured options.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: ladoga on Sat, 13 December 2014, 14:48:53
I'd like to report a possible bug.

HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE (keycode 51, apostrophe and asterisk in Swe/Fin ISO 88 layout) behaves differently from any other key.

When I quickly press shift and this key I get "*'" instead of expected "*" .

It feels like there is no time delay whatsoever for registering ' after * and thus when shift rises even 1ms before this key two presses are registered instead of one.  All other keys have some delay between shifted and non-shifted character to avoid this from happpening.


It doesn't matter which physical key HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE is mapped to. Result is the same.

Tested with two keyboards, both Filco TKL 88 ISO with Pegasus Hoof.

[EDIT] I just  flashed with BathroomEpiphanies' costar_keyboard firmware (https://github.com/BathroomEpiphanies/costar_keyboard) and it handles this key correctly. Maybe you could check from it how this key is handled (or compare the code to yours if you don't have access to ISO keyboard.

[EDIT2] Removed few lines to make the post bit clearer.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 18 December 2014, 08:59:42
I'd like to report a possible bug.

HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE (keycode 51, apostrophe and asterisk in Swe/Fin ISO 88 layout) behaves differently from any other key.

When I quickly press shift and this key I get "*'" instead of expected "*" .

It feels like there is no time delay whatsoever for registering ' after * and thus when shift rises even 1ms before this key two presses are registered instead of one.  In other words it's easier to repeat *' than ** (as the latter has some debounce time). All other keys have normal delay between shifted and non-shifted symbol and you have to hold key for about half a second before two different symbols are registered.

I hope someone understands what I'm trying to say. In short:

*'*'*'*'**'*'*'*'*'*'*'*'*'*''*'*'*'*'*'*'*'*'*'*  <- me trying to do a line of asterisks by tapping shift-'

It doesn't matter which physical key HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE is mapped to. Result is the same.

Tested with two keyboards, both Filco TKL 88 ISO with Pegasus Hoof.

[EDIT] I just  flashed with BathroomEpiphanies' costar_keyboard firmware (https://github.com/BathroomEpiphanies/costar_keyboard) and it handles this key correctly. Maybe you could check from it how this key is handled (or compare the code to yours if you don't have access to ISO keyboard.
Sounds like a problem with the pegasus hoof map. It still happens when you map something else, right?

scratch that.  I see on the SWE layout the* and ' are both on the same key.  I'm slightly confused by your description but I think I get the problem.  Are you saying that if you hold down SHIFT and keep pressing ', it causes the problem?  What if you just press it once?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: ladoga on Thu, 18 December 2014, 14:06:54

Sounds like a problem with the pegasus hoof map. It still happens when you map something else, right?

scratch that.  I see on the SWE layout the* and ' are both on the same key.  I'm slightly confused by your description but I think I get the problem.  Are you saying that if you hold down SHIFT and keep pressing ', it causes the problem?  What if you just press it once?
If I map HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE to some other key, then it happens on that other key. So it's not on Pegasus Hoof map, right?

As you say it's probably because both symbols are on the same key in ISO layout as opposed to two separate keys in ANSI. Interestingly there is another such key in ISO layout, HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE, but this one seems to work as it should.

Here is exactly how the problematic key behaves now:
- Press and release ' works. Result: '
- Keep ' pressed works. Result: '<delay>''''''''''''
- Press Shift then ', then release both. Doesn't work. Result: * or *' depending on which key is released first. Even slightest difference matters.
- Keep Shift and ' pressed.  Works. Result: *<delay>************** (and so on) until relese when above might happen.

So the problem is releasing Shift-'.  It often registers as two symbols as there is no delay in between * and '. (they are handled like they were two different physical keys).

Compare to normally behaving shifted key. For example:
- Press Shift then a, then release both. Result: A (even if you release Shift slightly before)

The problem is just the same with all ISO layouts e.g. # and ~ in ISO UK.
Country specific layouts are done on the OS side so they don't affect it.

[EDIT] I also noticed a problem with non-shifted HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE.

When typing on this firmware I've began to make a typo don't' when I type don't. Trying to hunt down the reason I noticed a weird behaviour (probably just another symptom of the same bug).

Normally autorepeat of a key stops when pressing some other key.

For example, keeping + pressed down and hitting g once: ++++++++++g<full stop>

But with HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE it just pauses briefly (and not even instantly) after hitting g and then goes on:
'''''''''''g''<pause>'''''''''''
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Thu, 29 January 2015, 22:25:20
Does this mean that you get 12 macros per layer? or 12 macros total?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: pepsicles on Sat, 31 January 2015, 10:38:52
Has anyone ever used this software to program a "The Ghost Squid" controller board on a CM Storm QuickFire XT? I'm thinking of purchasing "The Ghost Squid" but want to gauge how hard it would be to program it since I'm a complete noob when it comes to these type of things.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Sat, 31 January 2015, 11:26:53
Does this mean that you get 12 macros per layer? or 12 macros total?
Twelve total, sprinkled throughout the layers as desired.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: zennasyndroxx on Sat, 31 January 2015, 11:28:26
did anyone got their FLIP to work in Windows 7 x64? When I tried to flash it, I've got an error that says USB not recognizable or something like that.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: CPTBadAss on Sat, 31 January 2015, 22:22:59
Just an FYI, when I tried to download this, I got a message in Chrome Version 40.0.2214.93 m that the file is malicious and it stopped my download. I had to transfer it to my Dropbox and then pull it from there.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sun, 01 February 2015, 08:28:33
Has anyone ever used this software to program a "The Ghost Squid" controller board on a CM Storm QuickFire XT? I'm thinking of purchasing "The Ghost Squid" but want to gauge how hard it would be to program it since I'm a complete noob when it comes to these type of things.

As it's not in the first post it won't work until metalliqaz adds support for it.  It's made by the same guy who did the other converters which are supported and uses the same controller chip and there is source available for another firmware which must contain the matrix, so I think it should be quite easy to add but only he knows.

Once it's added it will be very easy to use just like all the other supported models, but you'll have to ask nicely :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 01 February 2015, 10:00:10
Looks like Bpiphany finally added the code for his ghost squid.  I use his code as a spec to add support to Easy AVR USB.  I will finally be able to support the Ghost Squid!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MJ45 on Sun, 01 February 2015, 10:43:20
Is their any chance of Easy AVR support for Hasu's HHKB Alt controller? It has a ATmega32u4 in it. I really like how Easy AVR Keymapper is to use.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 01 February 2015, 12:35:29
New Beta posted.  QFXT (Ghost Squid) support and JD45 support

[attachimg=1]

Ghost Squid is completely untested.  Someone with the hardware is going to have to test it.  Please report results to me so I can fix any bugs.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 01 February 2015, 16:36:45
Is their any chance of Easy AVR support for Hasu's HHKB Alt controller? It has a ATmega32u4 in it. I really like how Easy AVR Keymapper is to use.

I don't think so
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 01 February 2015, 16:37:39
did anyone got their FLIP to work in Windows 7 x64? When I tried to flash it, I've got an error that says USB not recognizable or something like that.

Make sure you install the Atmel driver.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Sun, 01 February 2015, 17:26:13
metalliqaz, the 12 macro limit, is that due to the chip's limitations?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 01 February 2015, 19:35:26
metalliqaz, the 12 macro limit, is that due to the chip's limitations?

No there is no inherent limit to the number of macros that the AVR could support, except for the size of flash memory.  The way it works is there is 1k of memory set aside for programmed macros, and any number of macros could be fit inside.

The limit on the number of macros comes from the 8-bit data space used for scancodes.  (0-255, most of which is used by the USB HID spec/MS data pages) I had to limit the number of macros somewhere, and 12 seemed like a natural number.

Why, what do you have in mind?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Sun, 01 February 2015, 20:06:36
metalliqaz, the 12 macro limit, is that due to the chip's limitations?

No there is no inherent limit to the number of macros that the AVR could support, except for the size of flash memory.  The way it works is there is 1k of memory set aside for programmed macros, and any number of macros could be fit inside.

The limit on the number of macros comes from the 8-bit data space used for scancodes.  (0-255, most of which is used by the USB HID spec/MS data pages) I had to limit the number of macros somewhere, and 12 seemed like a natural number.

Why, what do you have in mind?

Wellll...I don't know to be honest, I'm just getting into the whole firmware/controller side of this hobby, mainly because of my Monoprice GBL-4 (Daermo Blade) has the capability of 5 "profiles" (layers), 27 keys for macros x 400 characters. I have to desolder the board to see what controller it has.

Anyhow, I don't know to be honest, 16? 24? Different macros on different layers?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: zennasyndroxx on Mon, 02 February 2015, 00:42:03
did anyone got their FLIP to work in Windows 7 x64? When I tried to flash it, I've got an error that says USB not recognizable or something like that.

Make sure you install the Atmel driver.

Yeap i did. I had to manually install it via device manager. And windows is able to detect atmega32u4 when i set my kmac to programming mode
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 02 February 2015, 07:11:26
did anyone got their FLIP to work in Windows 7 x64? When I tried to flash it, I've got an error that says USB not recognizable or something like that.

Make sure you install the Atmel driver.

Yeap i did. I had to manually install it via device manager. And windows is able to detect atmega32u4 when i set my kmac to programming mode
Sounds like you're golden.  What board are you trying to connect now?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: zennasyndroxx on Mon, 02 February 2015, 11:38:51
did anyone got their FLIP to work in Windows 7 x64? When I tried to flash it, I've got an error that says USB not recognizable or something like that.

Make sure you install the Atmel driver.

Yeap i did. I had to manually install it via device manager. And windows is able to detect atmega32u4 when i set my kmac to programming mode
Sounds like you're golden.  What board are you trying to connect now?

Og kmac. When i tried to flash it it says usb port not opened or something and then automatically my kmac turns normal but yet the firmware is not flashed.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 03 February 2015, 10:07:16
Are you getting it to connect and then it fails when you try to program, or does it just never connect in the first place?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: zennasyndroxx on Tue, 03 February 2015, 10:47:03
Are you getting it to connect and then it fails when you try to program, or does it just never connect in the first place?

it fails when i try to program. :( but checking the hex file is alright
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: ctm on Fri, 06 February 2015, 10:57:35
I am wondering if I can use dfu-programmer to flash firmware created by Easy AVR USB Keyboard Firmware and Keymapper into my CM Storm QFR with Frosty Flake. I use Linux and Atmel FLIP does not seem to work well.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jdcarpe on Fri, 06 February 2015, 10:58:38
I am wondering if I can use dfu-programmer to flash firmware created by Easy AVR USB Keyboard Firmware and Keymapper into my CM Storm QFR with Frosty Flake. I use Linux and Atmel FLIP does not seem to work well.

Yes, dfu-profgammer should get it on there. I had more luck with that on Linux.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: geniekid on Fri, 06 February 2015, 18:01:16
I was able to use dfu-programmer to flash onto my Frosty Flake, albeit on windows.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: The feel is of the keys! on Sun, 08 February 2015, 08:04:33
Would you be able to set up Easy-AVR for the Atreus keyboard? The firmware is all provided, but it's not nearly as user friendly as Easy-AVR is.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 08 February 2015, 08:09:27
Would you be able to set up Easy-AVR for the Atreus keyboard? The firmware is all provided, but it's not nearly as user friendly as Easy-AVR is.
It runs on a Teensy,  so yes it can be done.  Was Atreus a GB?  I thought it was a homemade.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: The feel is of the keys! on Sun, 08 February 2015, 08:35:38
Would you be able to set up Easy-AVR for the Atreus keyboard? The firmware is all provided, but it's not nearly as user friendly as Easy-AVR is.
It runs on a Teensy,  so yes it can be done.  Was Atreus a GB?  I thought it was a homemade.

The newer ones run on a A-star. Not sure if there's been a GB for them, but you can buy kits from the maker of them.
http://atreus.technomancy.us/ It uses a different pinout for the A-star version.

Outputs:

    |-----------------+----+----+----+----|
    | row number |  0 |  1 |  2 |  3 |
    |----------------+----+----+----+----|
    | pin number | D0 | D1 | D3 | D2 |
    |----------------+----+----+----+----|

Inputs:

    |---------------------+----+----+----+----+----+----+----+----+----+----+----|
    | column number |  0 |  1 |  2 |  3 |  4 |  5 |  6 |  7 |  8 |  9 | 10 |
    |---------------------+----+----+----+----+----+----+----+----+----+----+----|
    | pin number    | B7 | B6 | F7 | F6 | B6 | D4 | E6 | B4 | B5 | C6 | D7 |
    |---------------------+----+----+----+----+----+----+----+----+----+----+----|
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 08 February 2015, 08:48:04
I'll look into it
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 08 February 2015, 10:14:16
Would you be able to set up Easy-AVR for the Atreus keyboard? The firmware is all provided, but it's not nearly as user friendly as Easy-AVR is.

For this to work, you're going to have to serve as a beta tester.

[attachimg=1]
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: The feel is of the keys! on Sun, 08 February 2015, 15:57:24
Would you be able to set up Easy-AVR for the Atreus keyboard? The firmware is all provided, but it's not nearly as user friendly as Easy-AVR is.

For this to work, you're going to have to serve as a beta tester.

(Attachment Link)

Awesome, I'm more than happy to beta test.  :thumb:
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 08 February 2015, 16:07:13
Would you be able to set up Easy-AVR for the Atreus keyboard? The firmware is all provided, but it's not nearly as user friendly as Easy-AVR is.

For this to work, you're going to have to serve as a beta tester.

(Attachment Link)

Awesome, I'm more than happy to beta test.  :thumb:

Which do you use, windows or multiplatform?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: The feel is of the keys! on Sun, 08 February 2015, 20:07:00
Would you be able to set up Easy-AVR for the Atreus keyboard? The firmware is all provided, but it's not nearly as user friendly as Easy-AVR is.

For this to work, you're going to have to serve as a beta tester.

(Attachment Link)

Awesome, I'm more than happy to beta test.  :thumb:

Which do you use, windows or multiplatform?

Windows 7.
i7 965 3.20GHz | 8GB RAM | GTX770 |
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 08 February 2015, 20:23:58
Okay, watch for a PM with a test build tonight or tomorrow.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Sun, 08 February 2015, 22:34:59
I absolutely LOVE how active you are with this project. Seriously.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: zennasyndroxx on Mon, 09 February 2015, 01:35:10
so the password feature is still not available to us eh?

and what does it do? generate a random password?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 09 February 2015, 07:53:05
I absolutely LOVE how active you are with this project. Seriously.
Thanks dude. Hopefully I can get around to adding some planned enhancements soon :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 09 February 2015, 07:56:16
so the password feature is still not available to us eh?

and what does it do? generate a random password?
It is fully functional, just not well documented. It generates strong passwords based on a simple key string. It's a bit more secure than storing a strong password as a macro that anyone could use.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bueller on Mon, 09 February 2015, 07:56:38
I should be able to do some beta testing with the GH60 for you soon, just waiting on my Nerd60 to be built and then I'm going to bring the GH60 home from work for a re-program.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 09 February 2015, 07:57:48
I should be able to do some beta testing with the GH60 for you soon, just waiting on my Nerd60 to be built and then I'm going to bring the GH60 home from work for a re-program.
Nice :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Mon, 09 February 2015, 13:47:00
I absolutely LOVE how active you are with this project. Seriously.
Thanks dude. Hopefully I can get around to adding some planned enhancements soon :)

Did I hear MOAR macros?!...hahaha.

But seriously, you should be getting kickback from some people for this, hell, this program is the only reason I'm looking to get a QFR and a Frosty Flake...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: beltet on Mon, 09 February 2015, 16:33:48
Chrome reports the latest beta as malicious. Is that a known problem?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 09 February 2015, 16:54:22
Chrome reports the latest beta as malicious. Is that a known problem?

Someone else mentioned that too.  I could tell you it's fine, but do you have a good reason to trust me?

It could be due to the fact that the program is just a py2exe package, and some malware may also use py2exe.  Let me send the file through a virus scanner.  Hopefully AVG has an online scanner or something like that.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 09 February 2015, 17:08:17
Chrome reports the latest beta as malicious. Is that a known problem?

Well, I just did a scan and I didn't find anything.  If Chrome flags it, I suggest doing a malware scan on the file to set your mind at ease.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: greath on Mon, 09 February 2015, 21:09:40
A marco I just added to my Filco that I thought the community might be interested in.  :thumb:

I set FN+s to run steam. Here's how:

Set S on the function layer to "SCANCODE_M1" (or whatever macro you want)
Set Macro M1 to:
\WIN(r) C:\\,Program Files (x86)\\,Steam\\,steam.exe \ENTER,

I did something similar with battle.net and origin
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: ctm on Tue, 10 February 2015, 19:51:31
I am trying to program my QFR with Frosty Flake 20140521 with the hex file generated by Easy AVR Keymapper. I tried dfu-programmer on Linux, erase works but when I try to flash it reports
"Error parsing the line.
Something went wrong with creating the memory image."
I also tried FLIP on Windows, but it does not work either. I tried hex files generated by both stable release and beta version, but ends in the same result. Any suggestions?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 10 February 2015, 20:20:23
I am trying to program my QFR with the hex file generated by Easy AVR Keymapper. I tried dfu-programmer on Linux, erase works but when I try to flash it reports
"Error parsing the line.
Something went wrong with creating the memory image."
I also tried FLIP on Windows, but it does not work either. I tried hex files generated by both stable release and beta version, but ends in the same result. Any suggestions?

Similar reports have popped up from time to time, but I have never been able to replicate this issue.  The only thing I can suggest is to regenerate the file on Windows and program it on Windows to prevent any dos2unix-type conversions.  Also you could try directly programming the template file from the Easy AVR USB installation.  It is a valid HEX binary, although it doesn't contain a mapping for the BOOT key.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: ctm on Tue, 10 February 2015, 20:49:58
I am trying to program my QFR with the hex file generated by Easy AVR Keymapper. I tried dfu-programmer on Linux, erase works but when I try to flash it reports
"Error parsing the line.
Something went wrong with creating the memory image."
I also tried FLIP on Windows, but it does not work either. I tried hex files generated by both stable release and beta version, but ends in the same result. Any suggestions?

Similar reports have popped up from time to time, but I have never been able to replicate this issue.  The only thing I can suggest is to regenerate the file on Windows and program it on Windows to prevent any dos2unix-type conversions.  Also you could try directly programming the template file from the Easy AVR USB installation.  It is a valid HEX binary, although it doesn't contain a mapping for the BOOT key.
Thank you for your quick reply! I compiled the file on my  Windows machine and flash it with FLIP and it works!!! Thank you so much!!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: greath on Wed, 11 February 2015, 08:52:47
I was just reading through the thread and saw the ** on the Pegasus Hoof for "probably working." I just installed mine and it's working wonderfully :)

If there is anything I can do/files I can send you that you would like to use for verification of a working program, let me know and I'd be more than happy to help.

Thanks for all the work you've put into this project.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 11 February 2015, 08:55:27
I was just reading through the thread and saw the ** on the Pegasus Hoof for "probably working." I just installed mine and it's working wonderfully :)

If there is anything I can do/files I can send you that you would like to use for verification of a working program, let me know and I'd be more than happy to help.

Thanks for all the work you've put into this project.

No your report is good enough.  Thanks for checking in!  If you find any weirdness just let me know.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Defying on Wed, 11 February 2015, 22:25:18
Is there any future plans to support Red Scarf (ghpad from kinraun's gb)?

i'd be willing to help test if needed
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 12 February 2015, 09:08:08
Is there any future plans to support Red Scarf (ghpad from kinraun's gb)?

i'd be willing to help test if needed

This was discussed once before.  If I remember correctly, it uses an ATmega32U4, so it could be supported.  However I don't own one, so I would need some specs.
Title: Kinruan's GHpad
Post by: AKmalamute on Thu, 12 February 2015, 12:21:49
I've programmed mine with a particular fork of TMK ... pulling from that file, I see in matrix.c:

 /* 4x6 Row pin configuration
  * row: 0   1   2   3   4   5
  * pin: D0  D1  D2  D3  D4  D5
 */

 /* 4x6 Column pin configuration
  * col: 0   1   2   3
  * pin: F0  F1  E6  C7
 */

What else can I help with? I'm attaching a .jpeg from the same .zip that shows the "names" of the switches as printed by silkscreen.
(http://[attach=1])
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 12 February 2015, 12:29:58
Yeah, that's what I'm looking for.  Good stuff.  What about the LEDs?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Thu, 12 February 2015, 12:59:31
Yeah, that's what I'm looking for.  Good stuff.  What about the LEDs?

Never messed with them myself, so we might have to get Glod over here to confirm, but following what he said was the right fork of TMK, I see an LED.c and a LEDMAP.c

the map-file has a bit more; namely:

#ifdef LEDMAP_ENABLE

static const uint16_t ledmaps[LED_COUNT] PROGMEM = {
   
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 12 February 2015, 13:02:55
Thanks, I'll give it a shot.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: greath on Thu, 12 February 2015, 18:46:10
Just a question that I haven't figured out yet. Is there a way to assign functions to the LEDs on my Filco? For example, righ tnow I have my Scroll Lock button set to disable/enable the Wink key. Is there a way for me to have the scroll lock LED turn on when I disable the win key this way? Not a huge deal, just curious.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 12 February 2015, 18:51:53
Just a question that I haven't figured out yet. Is there a way to assign functions to the LEDs on my Filco? For example, righ tnow I have my Scroll Lock button set to disable/enable the Wink key. Is there a way for me to have the scroll lock LED turn on when I disable the win key this way? Not a huge deal, just curious.

The Easy firmware supports a mode where Scroll Lock disables the Win Key.  I use it on my Epsilon.  It's good for gaming.  You can assign the LED to scroll lock, use the scroll lock key as a normal scroll lock key, and then just set scroll lock when you want to disable the Win Key.  That will illuminate the LED.

HOWEVER, if you haven't noticed, "Win Lock" is an option in the LED settings menus.  Have you tried that?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 12 February 2015, 18:59:38
Is there any future plans to support Red Scarf (ghpad from kinraun's gb)?

i'd be willing to help test if needed

According to AKmalamute's data, it is already supported as the "GH Pad" in Easy.  Have you tried it?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: greath on Thu, 12 February 2015, 19:02:19
I feel like an idiot, but where is the LED menu?!?!  :-X
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 12 February 2015, 19:04:19
I feel like an idiot, but where is the LED menu?!?!  :-X

Beneath the space bar, right above the Macro selectors.  It is possible that the "Release" version is so old it doesn't support programmable LEDs.  Use the beta version.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: greath on Thu, 12 February 2015, 19:07:18
Yup, it is not in the release version. Downloading the beta version to try now  :cool:

Can I open my old .dat or shoould I just rebuild it?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 12 February 2015, 19:09:20
Yup, it is not in the release version. Downloading the beta version to try now  :cool:

Can I open my old .dat or shoould I just rebuild it?

It is capable of upgrading old .dat files when it opens them.  If there's no error popup, it will be fine.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: greath on Thu, 12 February 2015, 19:31:12
Worked perfectly! Thanks. Winkeylock LED function is great :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: FreeCopy on Fri, 13 February 2015, 08:29:09
Worked perfectly! Thanks. Winkeylock LED function is great :)

+1

Came to this thread with the same question. Thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jdcarpe on Fri, 13 February 2015, 09:06:44
snip

Hey, congrats on 5000 posts! It came and went with no hurrah.

Well, HURRAH! :D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 13 February 2015, 09:09:22
snip

Hey, congrats on 5000 posts! It came and went with no hurrah.

Well, HURRAH! :D

Haha, yeah, thanks.  The first 5k is easy.  Hitting 10k, well, we'll see.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: geniekid on Fri, 13 February 2015, 09:50:01
Instead of necro-ing my own thread I think this is a good spot to point out that I forgot to thank metalliqaz in my most recent Phantom build (https://geekhack.org/index.php?topic=65094.0).  Firmware is the component of keyboard building I feel least passionate about and I breathe a sigh of relief every time I come to the firmware step of a build and I see that it is supported by this tool. :thumb:
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 13 February 2015, 10:02:00
Instead of necro-ing my own thread I think this is a good spot to point out that I forgot to thank metalliqaz in my most recent Phantom build (https://geekhack.org/index.php?topic=65094.0).  Firmware is the component of keyboard building I feel least passionate about and I breathe a sigh of relief every time I come to the firmware step of a build and I see that it is supported by this tool. :thumb:
Wow great job on that custom.  I missed that when it was posted.   I'm glad I could help and I really appreciate the shout out!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Fri, 13 February 2015, 10:35:07
Could this work with a Planck using s Teensy 2?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Fri, 13 February 2015, 11:32:04
Currently the Plank is a handwired-only kit, right? Meaning there's little if any guarantee of what the matrix looks like. Difficult to support hand-wired boards with a tool that expects a factory made, hard-coded matrix.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 13 February 2015, 12:10:09
Currently the Plank is a handwired-only kit, right? Meaning there's little if any guarantee of what the matrix looks like. Difficult to support hand-wired boards with a tool that expects a factory made, hard-coded matrix.

This is true, although on his website he claims to be making a PCB soon.

I think it may be time to create a hand-wired build.  I could create a matrix and just publish a guide that says "if you want to handwire a board that will work with Easy AVR, use these pins for the rows and these pins for the columns."
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: geniekid on Fri, 13 February 2015, 12:52:26
Currently the Plank is a handwired-only kit, right? Meaning there's little if any guarantee of what the matrix looks like. Difficult to support hand-wired boards with a tool that expects a factory made, hard-coded matrix.

This is true, although on his website he claims to be making a PCB soon.

I think it may be time to create a hand-wired build.  I could create a matrix and just publish a guide that says "if you want to handwire a board that will work with Easy AVR, use these pins for the rows and these pins for the columns."

That would help out people looking to build things with Melvang's Enablers too :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Defying on Fri, 13 February 2015, 15:17:42
Is there any future plans to support Red Scarf (ghpad from kinraun's gb)?

i'd be willing to help test if needed

According to AKmalamute's data, it is already supported as the "GH Pad" in Easy.  Have you tried it?
haven't tried it since i first got my ghpad, but i just flashed a firmware created with the latest beta of easy and none of the keys are responding to key presses.

TMK firmware from regack's github works: https://github.com/regack/4x6/tree/GHpad/firmware
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 13 February 2015, 15:39:51
Is there any future plans to support Red Scarf (ghpad from kinraun's gb)?

i'd be willing to help test if needed

According to AKmalamute's data, it is already supported as the "GH Pad" in Easy.  Have you tried it?
haven't tried it since i first got my ghpad, but i just flashed a firmware created with the latest beta of easy and none of the keys are responding to key presses.

TMK firmware from regack's github works: https://github.com/regack/4x6/tree/GHpad/firmware

Thanks for trying it.  As you can see in the OP, GHpad has not had any testing so there's probably a quirk to work out somewhere.  One of the problems is that there where a few different versions back when they were developing it and I added support when they were playing with some beta hardware.  I'll check my configs against Regack's code.  Should be able to get it working.  I'll send you some builds to try.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: rounders on Fri, 13 February 2015, 18:58:39
Evening all - I've used the Easy AVR to flash my JD40 and I'm blown away by how quick and easy the software is to use, thank you so much for making it!

I had some bold plans for the way I wanted to set up my keyboard, but after reading through this thread and a couple of other sources I'm getting the sinking feeling that what I'd like to do might not be possible...

In short, I'd like to customise the keys themselves, not just their location.  For example, the key to the right of 'M': currently, pressed alone this key returns ',' and with shift it returns '<' - what I would like is for a clear press to return ',' but when pressed with shift to return '.'.

Does anyone know whether and how doing this sort of thing might be possible?  It looks pretty clear that the Easy AVR doesn't give such ludicrously fine-grained options, but does the teensy itself?

Any help, info or suggestions would be great - thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jdcarpe on Fri, 13 February 2015, 19:02:26
Evening all - I've used the Easy AVR to flash my JD40 and I'm blown away by how quick and easy the software is to use, thank you so much for making it!

I had some bold plans for the way I wanted to set up my keyboard, but after reading through this thread and a couple of other sources I'm getting the sinking feeling that want I'd like to do might not be possible...

In short, I'd like to customise the keys themselves, not just their location.  For example, the key to the right of 'M': currently, pressed alone this key returns ',' and with shift it returns '<' - what I would like is for a clear press to return ',' but when pressed with shift to return '.'.

Does anyone know whether and how doing this sort of thing might be possible?  It looks pretty clear that the Easy AVR doesn't give such ludicrously fine-grained options, but does the teensy itself?

Any help, info or suggestions would be great - thanks!

Unfortunately, that isn't possible. The firmware sends keypresses of scancodes as recognized by the USB HID standard. Unless you want to write your own driver for it, that is.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: rounders on Fri, 13 February 2015, 19:11:23
Evening all - I've used the Easy AVR to flash my JD40 and I'm blown away by how quick and easy the software is to use, thank you so much for making it!

I had some bold plans for the way I wanted to set up my keyboard, but after reading through this thread and a couple of other sources I'm getting the sinking feeling that want I'd like to do might not be possible...

In short, I'd like to customise the keys themselves, not just their location.  For example, the key to the right of 'M': currently, pressed alone this key returns ',' and with shift it returns '<' - what I would like is for a clear press to return ',' but when pressed with shift to return '.'.

Does anyone know whether and how doing this sort of thing might be possible?  It looks pretty clear that the Easy AVR doesn't give such ludicrously fine-grained options, but does the teensy itself?

Any help, info or suggestions would be great - thanks!

Unfortunately, that isn't possible. The firmware sends keypresses of scancodes as recognized by the USB HID standard. Unless you want to write your own driver for it, that is.

Ah, pity - I think writing my own driver might be a liiiitle out of my league  :D

I figure I can modify xkb / evdev.xml easily enough, it just would have been nice to have made the changes on the keyboard itself. Hey ho :)

I am delighted with the JD40 - GH is quite a recent discovery for me and I've since lost many, many hours to reading through what you've been able to accomplish.  Outstanding work, all of you!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: AKmalamute on Fri, 13 February 2015, 19:49:06
Thanks for trying it.  As you can see in the OP, GHpad has not had any testing

I have one of those too, and can usually spare some minutes to tell you the output of programming the thing.

The switches are all mounted upside down. Was that in the original layout and/or would it do anything weird like invert your definition of row/columns, or the like?

Mine's got switches on one side but I could try to post a picture of the back, if you think that would help ...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Fri, 13 February 2015, 20:29:17
Currently the Plank is a handwired-only kit, right? Meaning there's little if any guarantee of what the matrix looks like. Difficult to support hand-wired boards with a tool that expects a factory made, hard-coded matrix.

This is true, although on his website he claims to be making a PCB soon.

I think it may be time to create a hand-wired build.  I could create a matrix and just publish a guide that says "if you want to handwire a board that will work with Easy AVR, use these pins for the rows and these pins for the columns."

Haha wellll...it just so happens PCarrier (https://github.com/pcarrier/planck) has a PCB that I was going to get a few of, and possibly have a few printed out for a GB. MAYbe. It'd be more of a "Hey guys I have 10 of these boards, who wants one at cost + shipping"...but either way. There're 2 designs, one that incorporates a teensy, and one that is SMD based...pretty cool if you ask me.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vicibz on Sat, 14 February 2015, 12:54:28
I just purchased my first mechanical keyboard (Filco Majestouch 2 TKL Spanish) and got myself The Pegasus Hoof right away which is installed and working great, what a great addon!

I've also been compiling and testing all the different firmwares and altough the base firmware for this one is not open source I found it obviously the easiest one to use.

I've been using the latest beta (20150201) and set up three different layers and all is working great except with macros in what looks like a bug: when using accented letters (áéíóú) for some reason building the firmware fails (filesize 0). I've also been unable to get the at sign. I have tried my\RALT(2)email.com (in my keyboard "@" comes from AltGr + 2). Any hints?

Thanks and great job!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 14 February 2015, 13:05:27
I just purchased my first mechanical keyboard (Filco Majestouch 2 TKL Spanish) and got myself The Pegasus Hoof right away which is installed and working great, what a great addon!

I've also been compiling and testing all the different firmwares and altough the base firmware for this one is not open source I found it obviously the easiest one to use.

I've been using the latest beta (20150201) and set up three different layers and all is working great except with macros in what looks like a bug: when using accented letters (áéíóú) for some reason building the firmware fails (filesize 0). I've also been unable to get the at sign. I have tried my\RALT(2)email.com (in my keyboard "@" comes from AltGr + 2). Any hints?

Thanks and great job!

I'm an American and I used Python 2.7, so there is basically no unicode support. :(  The code only understands ASCII.  I traded emails with a Deskthority user a while back who had the same problem.  He solved it by using the ALT codes (ALT+number).

I think that's why \RALT(2) isn't working.  It is probably assuming you're entering an ALT code and using the Numpad 2 instead of the number row 2.  You can verify with a key testing such as Elitekeyboard's tool or AquaKeyTest.

I'll take a look  Yup, that's what it is.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vicibz on Sat, 14 February 2015, 13:29:01
I think that's why \RALT(2) isn't working.  It is probably assuming you're entering an ALT code and using the Numpad 2 instead of the number row 2.  You can verify with a key testing such as Elitekeyboard's tool or AquaKeyTest.

I'll take a look  Yup, that's what it is.

Yes, it's using the Numpad "2", but I've tried with my\RALT(64)email.com and it prints "myemail.com" instead, may it be because I have a TKL?

Oh I forgot before, I'm flashing with dfu-prog-usb-1.2.2 and apparently it needs a new line at the end of the .hex file, otherwise there's an error about the last line and I have to add it manually every time.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 14 February 2015, 13:59:27
I think that's why \RALT(2) isn't working.  It is probably assuming you're entering an ALT code and using the Numpad 2 instead of the number row 2.  You can verify with a key testing such as Elitekeyboard's tool or AquaKeyTest.

I'll take a look  Yup, that's what it is.

Yes, it's using the Numpad "2", but I've tried with my\RALT(64)email.com and it prints "myemail.com" instead, may it be because I have a TKL?

Oh I forgot before, I'm flashing with dfu-prog-usb-1.2.2 and apparently it needs a new line at the end of the .hex file, otherwise there's an error about the last line and I have to add it manually every time.

I fixed the last line problem.  I'm also retooling the macro parser so that \RALT(2) should work the way you want.

Alt+64 works for me.  Try \RALT(064), see if that works.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 14 February 2015, 14:06:08
I just programmed "my\RALT(64)email.com" into my epsilon and I get "my@email.com"
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vicibz on Sat, 14 February 2015, 14:12:49
I just programmed "my\RALT(64)email.com" into my epsilon and I get "my@email.com"

I've tried with:

my\RALT(64)email.com
my\RALT(064)email.com

and it's not working for me  :(
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 14 February 2015, 14:21:38
New version posted in OP.  However, your problem with the "my\RALT(64)email.com" thing is strange.  Perhaps it has something to do with your foreign language setting.  What does it press when you use a key tester?  Also, just for ****s and giggles, what does this do?  "my\RALT(64)\SHIFT()email.com"
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vicibz on Sat, 14 February 2015, 14:35:25
Also, just for ****s and giggles, what does this do?  "my\RALT(64)\SHIFT()email.com"

Here:

(http://i.imgur.com/MUCxFGx.png)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 14 February 2015, 14:41:22
Also, just for ****s and giggles, what does this do?  "my\RALT(64)\SHIFT()email.com"

Here:

Show Image
(http://i.imgur.com/MUCxFGx.png)


I don't know what to tell you.  Mine looks identical, except it works great.  Watch: my@email.commy@email.commy@email.commy@email.commy@email.commy@email.com

Does NumLock make a difference?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vicibz on Sat, 14 February 2015, 14:41:37
Just in case: I'm using these macros using the 3rd layer which is triggered by Fn (former App key) and Right Control.
One question, what do the PW1..4 keys do? Shutdown, restart, sleep,..?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 14 February 2015, 14:42:13
Just in case: I'm using these macros using the 3rd layer which is triggered by Fn (former App key) and Right Control.
One question, what do the PW1..4 keys do? Shutdown, restart, sleep,..?

They generate strong passwords
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: zennasyndroxx on Sat, 14 February 2015, 15:39:12
the escape characters in macro works well for me :)

Oh yes, has anyone tried this with their orion or any duck boards?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 14 February 2015, 15:43:27
the escape characters in macro works well for me :)

Oh yes, has anyone tried this with their orion or any duck boards?

I run it on my Orion because I could never figure out the Korean firmwares.  It works nicely but it doesn't handle the backlighting very well at all.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sat, 14 February 2015, 15:44:31
This is really easy to use and cross platform too, I'm really impressed!

While setting up my JD40 with Colemak I was wondering if it would be possible to enable two key access to the symbols on the number row using a "shift and FN" key, or any other workaround?  Some are available elsewhere but it looks like I'll have to use most of the macros to get these characters (computers think I'm using a UK layout) ! " Ł $ % ^ & ( )

That would leave 982 characters for the last three macros which would have to be very carefully selected :))
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 14 February 2015, 15:50:04
This is really easy to use and cross platform too, I'm really impressed!

While setting up my JD40 with Colemak I was wondering if it would be possible to enable two key access to the symbols on the number row using a "shift and FN" key, or any other workaround?  Some are available elsewhere but it looks like I'll have to use most of the macros to get these characters (computers think I'm using a UK layout) ! " Ł $ % ^ & ( )

That would leave 982 characters for the last three macros which would have to be very carefully selected :))

I think I understand what you want.  You mean you want one of the Fn keys to imply a Shift?  Not currently supported but might be possible.  Let me think about it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: zennasyndroxx on Sat, 14 February 2015, 15:54:41
the escape characters in macro works well for me :)

Oh yes, has anyone tried this with their orion or any duck boards?

I run it on my Orion because I could never figure out the Korean firmwares.  It works nicely but it doesn't handle the backlighting very well at all.

I don't have any boards with full led to test it out but what modes does the BL mode (I presume that it's backlight mode) have? Duck's boards are good. the firmware is pretty good as well since you can have very advanced backlighting features but it lacks windows media keys support in Windows, and there's a lot of people who scratch their heads trying to use the o2d firmware.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 14 February 2015, 15:57:13
the escape characters in macro works well for me :)

Oh yes, has anyone tried this with their orion or any duck boards?

I run it on my Orion because I could never figure out the Korean firmwares.  It works nicely but it doesn't handle the backlighting very well at all.

I don't have any boards with full led to test it out but what modes does the BL mode (I presume that it's backlight mode) have? Duck's boards are good. the firmware is pretty good as well since you can have very advanced backlighting features but it lacks windows media keys support in Windows, and there's a lot of people who scratch their heads trying to use the o2d firmware.

The problem is that the Orion (and lightsaver, and KMAC) run at 8MHz and Easy AVR was developed to assume 16MHz.  The software-based PWM doesn't work right and that causes fading effects to look bad.  If all you care about is turning the lights on/off, then it works great.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sat, 14 February 2015, 15:59:56
This is really easy to use and cross platform too, I'm really impressed!

While setting up my JD40 with Colemak I was wondering if it would be possible to enable two key access to the symbols on the number row using a "shift and FN" key, or any other workaround?  Some are available elsewhere but it looks like I'll have to use most of the macros to get these characters (computers think I'm using a UK layout) ! " Ł $ % ^ & ( )

That would leave 982 characters for the last three macros which would have to be very carefully selected :))

I think I understand what you want.  You mean you want one of the Fn keys to imply a Shift?  Not currently supported but might be possible.  Let me think about it.
Exactly - switch to a different layer so it knows it's a number key but with an implied shift. 

Or maybe it would be easier to add duplicate keys to the list with an implied shift?  Then you could mix shifted and non-shifted keys on the same layer...

I wish I knew more about the computer side of things, your code is there so I should have a read!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 14 February 2015, 16:06:20
The embedded C code isn't out in the open, only the Python-based keymapper.

It is not possible to assign a key to shift+press.  (without a macro) To change it would require a new architecture from scratch.  It would also complicate the application quite a bit, which violates one of the goals of the project.  TMK can do that kind of stuff, but obvious is not as easy to use.

Adding a Fn-implies-Shift config option is much more likely to happen.  Let me tinker a bit.

PS: for what it's worth, I'm going to add more macro keys eventually.  Should get M13-M16
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sat, 14 February 2015, 16:32:57
I was struggling to get through gui.py and you say this is just the frontend and the real work is elsewhere?  :eek:  Easy for the end user is not so easy for the developer, you don't want to be redoing this from scratch when it works so well.

I will use macros for now but if you could add the implied shift and/or more macros that would be great.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 14 February 2015, 17:35:06
I implemented it.  Next version will include "Shifted" mode for modifiers and Fn keys.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sat, 14 February 2015, 17:48:20
Wow, that was quick!  Thanks :D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vicibz on Sun, 15 February 2015, 02:28:01
Just wondering ...
Would it be difficult to implement modifying the macros from within the Config Console?

And one last "issue" I've found. I wanted the Scroll led in my kb to lit up when pressing the Fn key (kind of like the CoReCon firmware) but it doesn't work:

(http://i.imgur.com/UXJfUPo.png)

Did I get this one wrong?
Thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sun, 15 February 2015, 07:30:01
Just wondering ...
Would it be difficult to implement modifying the macros from within the Config Console?

And one last "issue" I've found. I wanted the Scroll led in my kb to lit up when pressing the Fn key (kind of like the CoReCon firmware) but it doesn't work:

Show Image
(http://i.imgur.com/UXJfUPo.png)


Did I get this one wrong?
Thanks!
From reading the documentation I think the LED is only for the "toggle" or "lockable" modes, it won't work while holding the Fn key in "normal" mode as the layer isn't locked.  Other than that you've done it right :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 15 February 2015, 07:32:13
He speaks the truth
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: slip84 on Sun, 15 February 2015, 09:15:48
I'm a bit confused, in the first page, there was talk of supporting the AVR-based GON boards. Did that ever happen? Or was there a reason it couldn't?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 15 February 2015, 09:29:25
I'm a bit confused, in the first page, there was talk of supporting the AVR-based GON boards. Did that ever happen? Or was there a reason it couldn't?

Most of the Korean boards from that time used ATmega32A parts, which are not USB parts (ATmega32U) which my firmware requires.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sun, 15 February 2015, 09:43:00
Can I be a complete PITA and request an "implied Ctrl" Fn option too?  Having finished my Colemak based layout on testing I realised I have no H key, which is less than ideal :))

To remedy this I'm going to have to move X or Z but I want them to stay put for cut and undo...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: slip84 on Sun, 15 February 2015, 09:47:01
I'm a bit confused, in the first page, there was talk of supporting the AVR-based GON boards. Did that ever happen? Or was there a reason it couldn't?

Most of the Korean boards from that time used ATmega32A parts, which are not USB parts (ATmega32U) which my firmware requires.

Groovy! Thanks for the quick answer.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: greath on Sun, 15 February 2015, 12:46:01
Another experiment in macros.

Trying to set up a macro to change between two default audio devices for output. Here's what I have so far:

\WIN(r) mmsys.cpl \ENTER, \DOWN, \ALT(s) \ENTER,

All the keys seem to output correctly (according to AquaKeyTest). I *believe* the problem is that there is no wait time between \ENTER, and \DOWN,. Is there a wait function that I'm not seeing in the instructions? If not do you think you'll be adding a wait function in the future at any point?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 15 February 2015, 13:04:49
Another experiment in macros.

Trying to set up a macro to change between two default audio devices for output. Here's what I have so far:

\WIN(r) mmsys.cpl \ENTER, \DOWN, \ALT(s) \ENTER,

All the keys seem to output correctly (according to AquaKeyTest). I *believe* the problem is that there is no wait time between \ENTER, and \DOWN,. Is there a wait function that I'm not seeing in the instructions? If not do you think you'll be adding a wait function in the future at any point?

You aren't missing anything.  There isn't a wait macro.  The main reason there isn't a wait macro is that I never needed it myself.  The secondary reason is that the firmware doesn't actually "know" what a macro is.  When you press M1, all that happens is a switch is flipped that causes the software to ignore the key->scancode translation table and read from a string instead.  It's just injecting scancodes into the stream, and there is no scancode for "wait".  I haven't hacked on the macro code in a long time.  Let me see if a wait is possible.

Also, I do something similar on my PC with the default audio devices.  Except, I don't try to run mmsys.cpl.  I dragged the "Sound" widget from the control pannel to my desktop, which creates a shortcut.  Then, I went into the shortcut properties and set a shortcut key.  This means that I can press Ctrl+Alt+S and it pops right up.  You could do something like that to simplify your macro and possibly even speed it up.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: greath on Sun, 15 February 2015, 13:15:26
Another experiment in macros.

Trying to set up a macro to change between two default audio devices for output. Here's what I have so far:

\WIN(r) mmsys.cpl \ENTER, \DOWN, \ALT(s) \ENTER,

All the keys seem to output correctly (according to AquaKeyTest). I *believe* the problem is that there is no wait time between \ENTER, and \DOWN,. Is there a wait function that I'm not seeing in the instructions? If not do you think you'll be adding a wait function in the future at any point?

You aren't missing anything.  There isn't a wait macro.  The main reason there isn't a wait macro is that I never needed it myself.  The secondary reason is that the firmware doesn't actually "know" what a macro is.  When you press M1, all that happens is a switch is flipped that causes the software to ignore the key->scancode translation table and read from a string instead.  It's just injecting scancodes into the stream, and there is no scancode for "wait".  I haven't hacked on the macro code in a long time.  Let me see if a wait is possible.

Also, I do something similar on my PC with the default audio devices.  Except, I don't try to run mmsys.cpl.  I dragged the "Sound" widget from the control pannel to my desktop, which creates a shortcut.  Then, I went into the shortcut properties and set a shortcut key.  This means that I can press Ctrl+Alt+S and it pops right up.  You could do something like that to simplify your macro and possibly even speed it up.

I know I'm being pedantic at this point, just playing around with the marcos to figure out what is and is not possible :D

I think I'll keep my "\WIN(r) mmsys.cpl \ENTER," part of the macro to bring up sound and use that, but thanks for the shortcut tip.

I'll keep a lookout for if you ever do add \WAIT functionality. Again thanks for the fast reply.

Also, if you don't have a volume on screen display and want one (along with a little more functionality), check out Volume2 (http://www.softpedia.com/get/Multimedia/Audio/Other-AUDIO-Tools/Volume2.shtml). It's what I've been using to quickswap between default audio devices, and the OSD for volume is customize and really nice.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 15 February 2015, 13:53:51
The idea is in my head now, so I have to try implementing it. (damn OCD)

it will be something like \WAIT(N) where N is a number less than or equal to 255
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: greath on Sun, 15 February 2015, 14:05:55
The idea is in my head now, so I have to try implementing it. (damn OCD)

it will be something like \WAIT(N) where N is a number less than or equal to 255

Awesome! I'll try it out as soon as I see that it's posted :D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 15 February 2015, 21:10:56
Posted a new build.  Man, I hope I didn't screw up all the recompiles.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: greath on Mon, 16 February 2015, 06:52:01
Awesome! The wait function appears to work!

However it seems my macro is still doing something funky. Will test more after I get home from work today. I can see the wait time happening, but the macro needs a bit of troubleshooting.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Tue, 17 February 2015, 02:27:32
Yay, a build with shifted mode!

Hopefully I'll have time to play with this tonight :D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 20 February 2015, 16:30:54
Hey guys, I need your feedback to answer this question.

When I started writing my firmware, my goal was simply to get my own DIY creation up and running.  When I finished my Epsilon project, I quite liked hacking on my own firmware and started porting it to other boards.  The new features and targets crept up gradually and before long I had a user base that prevented me from fixing an annoying issue.

I never changed USB identification data.  So if you program your KMAC with the Easy firmware, it will show up in your control panel as "Epsilon Keyboard."  Likewise for a Phantom or GH60, etc.

Here's the important part:  I never changed it because when I tried a test build with changed ident data on my own PC, Windows freaked out over the new name and I had to uninstall the driver in the device manager and re-attach the keyboard to be redetected before it would work again.

So, tell me.  Would you rather I fixed the name, possibly requiring some control panel work, or do you think it would be best to simply leave it the way it is, preventing troubles for unsuspecting users?

Thanks for any feedback.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: jdcarpe on Fri, 20 February 2015, 16:35:56
Hey guys, I need your feedback to answer this question.

When I started writing my firmware, my goal was simply to get my own DIY creation up and running.  When I finished my Epsilon project, I quite liked hacking on my own firmware and started porting it to other boards.  The new features and targets crept up gradually and before long I had a user base that prevented me from fixing an annoying issue.

I never changed USB identification data.  So if you program your KMAC with the Easy firmware, it will show up in your control panel as "Epsilon Keyboard."  Likewise for a Phantom or GH60, etc.

Here's the important part:  I never changed it because when I tried a test build with changed ident data on my own PC, Windows freaked out over the new name and I had to uninstall the driver in the device manager and re-attach the keyboard to be redetected before it would work again.

So, tell me.  Would you rather I fixed the name, possibly requiring some control panel work, or do you think it would be best to simply leave it the way it is, preventing troubles for unsuspecting users?

Thanks for any feedback.

I don't mind it as-is, because I know what it means when I see it listed in devices. But a better descriptor would be a good thing, I think, as more and more people jump onboard. "Easy AVR USB Keyboard" or something. This being basically the default firmware for the JD40 and upcoming JD45, as well as Ron's SD keyboards, lots and lots of people are going to be using it.

I noticed you did away with the "beta" builds. Did you simply port the JD40 over what was the SmallFry (SMD version) in the new versions?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: geniekid on Fri, 20 February 2015, 16:43:16
I think you should change it!  Anyone who is flashing their own firmware will likely be able to figure things out.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Fri, 20 February 2015, 16:48:30
Hey guys, I need your feedback to answer this question.

So, tell me.  Would you rather I fixed the name, possibly requiring some control panel work, or do you think it would be best to simply leave it the way it is, preventing troubles for unsuspecting users?

Thanks for any feedback.

I've always laughed at Windows' inability to instantly find drivers when switching a mouse or keyboard between USB ports and couldn't help chuckling to myself when I read this.  Perhaps a note to swap USB port would be easier for those less technically inclined, assuming that still makes Windows stop and think?

Personally I use Linux so would quite like the name to be accurate, but I hadn't even noticed what it's called so it's not something I'll loose any sleep over.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 20 February 2015, 17:03:13
I don't mind it as-is, because I know what it means when I see it listed in devices. But a better descriptor would be a good thing, I think, as more and more people jump onboard. "Easy AVR USB Keyboard" or something. This being basically the default firmware for the JD40 and upcoming JD45, as well as Ron's SD keyboards, lots and lots of people are going to be using it.

So you think I should avoid describing the keyboard and instead describe the software?  That would certainly be easy to implement.  Perhaps I could leave it generic, like "Easy AVR USB Keyboard" but allow it to be configured via the keymapper.

I noticed you did away with the "beta" builds.

The development was always in a straight line.  However, for some updates I'd recompile all the binaries, reprogram all of my supported boards with the new code, and test each one.  Then I'd publish it for a few days and if I didn't get any complaints, I'd call that a release version.  That's time consuming and I realized that I was avoiding doing it because of the work.  It got to the point that the Release version was out of date by the better part of a year.  So instead what I'm going to do is just leave some of the old links in the OP, so if a user has a problem with a new release, they can always just re-download an older version.

Did you simply port the JD40 over what was the SmallFry (SMD version) in the new versions?

Honestly I don't know which one I currently support.  A while ago you explained the difference to me and I will return to that post when needed, however nobody has reported any problems so I haven't changed anything.  It hasn't changed in a long time.  I prefer the TKL layout so I'll probably never own a 40%.  I can easily support both designs, but it will require a user to stand up and say they need help.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Fri, 20 February 2015, 17:06:57
Honestly I don't know which one I currently support.  A while ago you explained the difference to me and I will return to that post when needed, however nobody has reported any problems so I haven't changed anything.  It hasn't changed in a long time.  I prefer the TKL layout so I'll probably never own a 40%.  I can easily support both designs, but it will require a user to stand up and say they need help.
It currently works on my JD40 so I guess SmallFry support has been overwritten.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 20 February 2015, 17:11:46
Honestly I don't know which one I currently support.  A while ago you explained the difference to me and I will return to that post when needed, however nobody has reported any problems so I haven't changed anything.  It hasn't changed in a long time.  I prefer the TKL layout so I'll probably never own a 40%.  I can easily support both designs, but it will require a user to stand up and say they need help.
It currently works on my JD40 so I guess SmallFry support has been overwritten.

Thanks, I will change the name to "JD40" to avoid confusion.  If someone with a Smallfry complains, I'll add it as a new target.
So yours runs off a Teensy then, correct?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Fri, 20 February 2015, 17:13:27
Honestly I don't know which one I currently support.  A while ago you explained the difference to me and I will return to that post when needed, however nobody has reported any problems so I haven't changed anything.  It hasn't changed in a long time.  I prefer the TKL layout so I'll probably never own a 40%.  I can easily support both designs, but it will require a user to stand up and say they need help.
It currently works on my JD40 so I guess SmallFry support has been overwritten.

Thanks, I will change the name to "JD40" to avoid confusion.  If someone with a Smallfry complains, I'll add it as a new target.
So yours runs off a Teensy then, correct?

It does :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vicibz on Sat, 21 February 2015, 01:59:22
So you think I should avoid describing the keyboard and instead describe the software?  That would certainly be easy to implement.  Perhaps I could leave it generic, like "Easy AVR USB Keyboard" but allow it to be configured via the keymapper.

Or have it defined in each configuration file for every keyboard, i.e:

filcohoof.cfg
Code: [Select]
[ANSI 87]
MAKE_KEY(5, 0, 9, 4)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(4, 12, 0)
MAKE_KEY(4, 13, 9, 4)

[ISO 88]
MAKE_BLANK(3, 13, 6)
MAKE_KEY(4, 13, 5, -8)

# WARNING MESSAGE WOULD GO HERE
[USB]
SET(VENDOR_ID, 0xFEED)
SET(PRODUCT_ID, 0xBEEF)
SET(MANUFACTURER, "Easy AVR USB Keyboard")
SET(PRODUCT, "Filco Majestouch-2 TKL")
SET(DESCRIPTION, "Easy AVR USB Keyboard firmware for Filco Majestouch-2 TKL")

This way only those who really want to modify these will go edit the cfg files, thus keeping the keymapper "easy".
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 21 February 2015, 15:38:47
I've posted a new version.  See OP and changelog.

I decided to update the USB descriptors, but I kept it simple.  Just plain, no-nonsense strings.  Most people will never notice this anyway.

More
#define PRODUCT_STRING  L"EasyAVR HID Liberation Device"
#define PRODUCT_STRING  L"EasyAVR Pegasus Hoof"
#define PRODUCT_STRING  L"EasyAVR Kitten Paw"
#define PRODUCT_STRING  L"EasyAVR Frosty Flake"
#define PRODUCT_STRING  L"EasyAVR Black Petal"
#define PRODUCT_STRING  L"EasyAVR Ghost Squid"
#define PRODUCT_STRING  L"Epsilon Keyboard"
#define PRODUCT_STRING  L"Tau Keypad"
#define PRODUCT_STRING  L"EasyAVR GH60"
#define PRODUCT_STRING  L"EasyAVR GH36"
#define PRODUCT_STRING  L"EasyAVR GHPad"
#define PRODUCT_STRING  L"EasyAVR JD45"
#define PRODUCT_STRING  L"EasyAVR JD40"
#define PRODUCT_STRING  L"EasyAVR Phantom"
#define PRODUCT_STRING  L"EasyAVR KMAC"
#define PRODUCT_STRING  L"EasyAVR Orion"
#define PRODUCT_STRING  L"EasyAVR Atreus"
#define PRODUCT_STRING  L"EasyAVR Techcard"
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 23 February 2015, 22:40:38
So a while ago ladoga brought a problem to my attention with using the firmware on non-US boards.  Apparently, the bit-packed vector that is used for NKRO support is not well supported in linux when using the backslash/non_us_hashmark_and_tilde key.  I think there is a translation layer that is causing keys to be virtually lifted and redetected even though the user holds the key steady IRL.

To work around this I tweaked the "Basic keyboard" config option to allow the user to disable NKRO and use 6KRO instead.  For further compatibility, the user can also disable the mouse and media keys.

I also added some new scancodes to this release, including two more Macros.  I don't really have any more room for macro codes than 14.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: ladoga on Tue, 24 February 2015, 15:41:31
To work around this I tweaked the "Basic keyboard" config option to allow the user to disable NKRO and use 6KRO instead. 

Just reporting that everything I tried works perfectly with 6KRO+Media Keys.

I notice there's also model specific device ID's now, nice:
Code: [Select]
[605113.351514] usb 1-1: new full-speed USB device number 22 using xhci_hcd
[605113.559031] usb 1-1: New USB device found, idVendor=03eb, idProduct=20ff
[605113.559039] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[605113.559043] usb 1-1: Product: EasyAVR Pegasus Hoof
[605113.559291] usb 1-1: ep 0x81 - rounding interval to 32 microframes, ep desc says 40 microframes
[605113.559299] usb 1-1: ep 0x82 - rounding interval to 32 microframes, ep desc says 40 microframes
[605113.559305] usb 1-1: ep 0x83 - rounding interval to 32 microframes, ep desc says 40 microframes
[605113.568621] input: EasyAVR Pegasus Hoof as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/0003:03EB:20FF.0018/input/input32
[605113.568822] hid-generic 0003:03EB:20FF.0018: input,hidraw0: USB HID v1.11 Keyboard [EasyAVR Pegasus Hoof] on usb-0000:00:14.0-1/input0
[605113.574518] input: EasyAVR Pegasus Hoof as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.1/0003:03EB:20FF.0019/input/input33
[605113.574744] hid-generic 0003:03EB:20FF.0019: input,hidraw1: USB HID v1.11 Mouse [EasyAVR Pegasus Hoof] on usb-0000:00:14.0-1/input1
[605113.583126] input: EasyAVR Pegasus Hoof as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.2/0003:03EB:20FF.001A/input/input34
[605113.583377] hid-generic 0003:03EB:20FF.001A: input,hidraw2: USB HID v1.11 Device [EasyAVR Pegasus Hoof] on usb-0000:00:14.0-1/input2

Thanks.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tyvar1 on Fri, 27 February 2015, 04:22:18
Your changelog says 2014 when it should be 2015 ;)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 27 February 2015, 08:33:51
Your changelog says 2014 when it should be 2015 ;)

Ah, yes.  That bane of every programmer: the copy-paste error.  Thanks, I fixed it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tyvar1 on Fri, 27 February 2015, 08:38:23
Your changelog says 2014 when it should be 2015 ;)

Ah, yes.  That bane of every programmer: the copy-paste error.  Thanks, I fixed it.
Haha no worries,just a small typo ;)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 27 February 2015, 08:45:05
Question

Say you have a keyboard like the Orion.  You have backlights as well as caps/scroll/num lock LEDs.  You have Caps Lock on and you are also using some kind of dynamic backlighting effects (breathing, reactive, etc) at the same time.

Do you expect the LED under the Caps Lock to brighten and dim with the rest of the backlights, or do you expect it to stay on at a consistent brightness.

I prefer the indicators are either on or off, not tracking the dynamic effects of the backlights, however I wonder if this view is shared by others.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vicibz on Fri, 27 February 2015, 13:09:48
I think so too. The led's main function should have priority over other effects when it's on.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sat, 28 February 2015, 11:35:23
Do you expect the LED under the Caps Lock to brighten and dim with the rest of the backlights, or do you expect it to stay on at a consistent brightness.
I've not got a backlit board, but if I did and was planning to use the lighting effects I would try to add the indicator LED(s) somewhere else (not in the switch) in the same way most stock keyboards do so it didn't ruin the effect.  If that wasn't an option the LED should stay on otherwise there is no indicator, which would be annoying.


Unrelated - is there any way to default to num lock on?  I think not but no harm asking :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 28 February 2015, 11:42:21
Unrelated - is there any way to default to num lock on?  I think not but no harm asking :)

The Num Lock is handled by your PC, not by the keyboard.  When you press the Num Lock key, it sends the scancode to the PC, then the PC sends a message to the keyboard that says "turn on Num Lock LED".  The keyboard doesn't turn on the Num Lock LED on its own.  You can see this in action if you have two keyboards connected to your computer.  Pressing Num Lock on one of them will turn on/off the LED on both boards.

Therefore, setting NumLock to default to on is not a keyboard setting, it is a OS or BIOS setting.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sat, 28 February 2015, 11:59:28
Unrelated - is there any way to default to num lock on?  I think not but no harm asking :)

The Num Lock is handled by your PC, not by the keyboard.  When you press the Num Lock key, it sends the scancode to the PC, then the PC sends a message to the keyboard that says "turn on Num Lock LED".  The keyboard doesn't turn on the Num Lock LED on its own.  You can see this in action if you have two keyboards connected to your computer.  Pressing Num Lock on one of them will turn on/off the LED on both boards.

Therefore, setting NumLock to default to on is not a keyboard setting, it is a OS or BIOS setting.
Thought so, thanks for confirming :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: radish on Sun, 01 March 2015, 11:05:41
hey guys been looking around and i havent found any info on saving the existing firmware on the pcb.

i got a pre flashed kmac2 and i was wondering if anyone knew any way of backing up the existing firmware on the board before flashing it with the files generated by this software.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: zennasyndroxx on Sun, 01 March 2015, 12:23:35
hey guys been looking around and i havent found any info on saving the existing firmware on the pcb.

i got a pre flashed kmac2 and i was wondering if anyone knew any way of backing up the existing firmware on the board before flashing it with the files generated by this software.

what you can do is to generate the original kmac2 firmware with the kbdmod keymapper. you can always revert back to kmac2 firmware by flashing the generated hex file back to your kmac2
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 01 March 2015, 13:50:30
hey guys been looking around and i havent found any info on saving the existing firmware on the pcb.

i got a pre flashed kmac2 and i was wondering if anyone knew any way of backing up the existing firmware on the board before flashing it with the files generated by this software.

Also, the tool that programs the firmware, Flip, can also be used to download the firmware.  Instead of loading the .hex and then doing the usual erase/program/verify, you can do "Read Target Memory" and then "save buffer"

I've not used this function for the purpose of backing up firmware, but it's there.

EDIT: Nevermind.  It appears KMACs have device protection set.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: zennasyndroxx on Sun, 01 March 2015, 14:21:42
hey guys been looking around and i havent found any info on saving the existing firmware on the pcb.

i got a pre flashed kmac2 and i was wondering if anyone knew any way of backing up the existing firmware on the board before flashing it with the files generated by this software.

Also, the tool that programs the firmware, Flip, can also be used to download the firmware.  Instead of loading the .hex and then doing the usual erase/program/verify, you can do "Read Target Memory" and then "save buffer"

I've not used this function for the purpose of backing up firmware, but it's there.

EDIT: Nevermind.  It appears KMACs have device protection set.

is the hex file generated from kbdmod keymapper going to be different if we were to save the buffers as hex?

Also, duck boards are locked too.

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 01 March 2015, 14:28:37
hey guys been looking around and i havent found any info on saving the existing firmware on the pcb.

i got a pre flashed kmac2 and i was wondering if anyone knew any way of backing up the existing firmware on the board before flashing it with the files generated by this software.

Also, the tool that programs the firmware, Flip, can also be used to download the firmware.  Instead of loading the .hex and then doing the usual erase/program/verify, you can do "Read Target Memory" and then "save buffer"

I've not used this function for the purpose of backing up firmware, but it's there.

EDIT: Nevermind.  It appears KMACs have device protection set.

is the hex file generated from kbdmod keymapper going to be different if we were to save the buffers as hex?

Also, duck boards are locked too.

Sorry, don't misunderstand.  Using Flip to try and save the firmware (although it appears that doesn't work) will have no effect at all  on what you generate using the kbdmod keymapper.  They are completely separate things.  You use the keymapper to generate a .hex file.  That .hex file is then programmed to the board.  Attempting to download from the board is unrelated.

Easy AVR and kbdmod produce completely separate .hex files.  They are different firmwares with different features.  I prefer mine but I'm biased :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: zennasyndroxx on Sun, 01 March 2015, 14:36:50
hey guys been looking around and i havent found any info on saving the existing firmware on the pcb.

i got a pre flashed kmac2 and i was wondering if anyone knew any way of backing up the existing firmware on the board before flashing it with the files generated by this software.

Also, the tool that programs the firmware, Flip, can also be used to download the firmware.  Instead of loading the .hex and then doing the usual erase/program/verify, you can do "Read Target Memory" and then "save buffer"

I've not used this function for the purpose of backing up firmware, but it's there.

EDIT: Nevermind.  It appears KMACs have device protection set.

is the hex file generated from kbdmod keymapper going to be different if we were to save the buffers as hex?

Also, duck boards are locked too.

Sorry, don't misunderstand.  Using Flip to try and save the firmware (although it appears that doesn't work) will have no effect at all  on what you generate using the kbdmod keymapper.  They are completely separate things.  You use the keymapper to generate a .hex file.  That .hex file is then programmed to the board.  Attempting to download from the board is unrelated.

Easy AVR and kbdmod produce completely separate .hex files.  They are different firmwares with different features.  I prefer mine but I'm biased :)

yes, they produce different hex files. what i was saying is that if we were able to download or backup the hex files from the board, and they are the same hex files as compared to the ones generated (provided that you're backing up OG firmware, comparing with generated firmware from OG keymapper with the same layout) then there isn't any need to make a backup from your board. even if we would like to backup from our board, the device is locked so we can't do that. so why not just generate from the original keymapper?

And yes, easy avr > some original firmware, we're on the same page here :D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 01 March 2015, 15:46:34
I've never tried it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 01 March 2015, 15:51:15
New release today.

I got rid of the FN_LOCK LED which would light up if any function layer was locked.  Instead, there is FN_ACTIVE through FN9_ACTIVE.  You can pick exactly which layer you want to indicate, and they illuminate even if the layer isn't locked.

Also I added a new backlight mode: Erosion.  It's basically the opposite of Reactive.  It always moves towards max brightness and stays there if you don't press any keys.  Then, each keypress dims it a little bit, but it will quickly come back if you don't keep typing.  Are you fast enough to extinguish the backlight?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: radish on Sun, 01 March 2015, 16:22:00
is there any way to get around the device protection? i would feel much better knowing that if something goes wrong i can load the original firmware and send it in for repairs rather then relying on a generic generated one.

in flip i pretty followed what you said and got the same result. i read the firmware... and it spits out device protection error. if i save it it only saves a 1kb hex file that has nothing in it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 01 March 2015, 17:22:37
is there any way to get around the device protection? i would feel much better knowing that if something goes wrong i can load the original firmware and send it in for repairs rather then relying on a generic generated one.

in flip i pretty followed what you said and got the same result. i read the firmware... and it spits out device protection error. if i save it it only saves a 1kb hex file that has nothing in it.
Nah,  just go with the original suggestion.  If you can't figure out the korean tool, you can just ask one of us.  It's not a big deal.

Like I said in the FAQ, I've programmed all kinds of crap on my boards and I've never bricked it.

If you have serious anxiety over it, maybe custom ROMs aren't for you.  It's okay, KMAC is still the best there is.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: radish on Sun, 01 March 2015, 17:47:25
i come from more of a mobile realm... so flashing kernels and doing low level stuff is easy enough... but i am not good enough with programming to get myself out of any bind. but thats good to hear. ill take the plunge later tonight i guess. having a 86 kbd layout is really driving me nuts. a fn is way more important at this point. i have a nerd  pcb in the mail as well.. so i guess practicing on here... would be ideal.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 01 March 2015, 17:57:58
i come from more of a mobile realm... so flashing kernels and doing low level stuff is easy enough... but i am not good enough with programming to get myself out of any bind. but thats good to hear. ill take the plunge later tonight i guess. having a 86 kbd layout is really driving me nuts. a fn is way more important at this point. i have a nerd  pcb in the mail as well.. so i guess practicing on here... would be ideal.
Cool. If you have any issues, just check in here. There's lots of experience around these parts. I believe with KMAC you can always put it in programming mode by holding caps lock when you plug it in.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 01 March 2015, 19:44:20
I just re-uploaded today's build.  This time without the bugs.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: n7 on Sun, 01 March 2015, 20:53:31
I just re-uploaded today's build.  This time without the bugs.
I just tried doing a build for my Frosty Flake v1 with the 20150301 build, but was getting garbage output (keys seemed to be mapped to random characters, i'd type a character and get a string of 5 or so characters, my mac would turn down its brightness, etc)

I was able to build successfully by rolling back to 20150223. No gripes, I'm grateful for this program - just figured you might want to be aware / others if they have the same issue. It's a little funny, because today is the first day I have decided to mess with my keyboard's firmware in months  :))
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 01 March 2015, 21:06:33
I just re-uploaded today's build.  This time without the bugs.
I just tried doing a build for my Frosty Flake v1 with the 20150301 build, but was getting garbage output (keys seemed to be mapped to random characters, i'd type a character and get a string of 5 or so characters, my mac would turn down its brightness, etc)

I was able to build successfully by rolling back to 20150223. No gripes, I'm grateful for this program - just figured you might want to be aware / others if they have the same issue. It's a little funny, because today is the first day I have decided to mess with my keyboard's firmware in months  :))

Ugh, crap.  Thanks for reporting in.  I just rebuild the Flakes and it appears perfect.  Not sure how changing the LEDs could have screwed up the matrix so much.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 01 March 2015, 21:35:36
I just re-uploaded today's build.  This time without the bugs.
I just tried doing a build for my Frosty Flake v1 with the 20150301 build, but was getting garbage output (keys seemed to be mapped to random characters, i'd type a character and get a string of 5 or so characters, my mac would turn down its brightness, etc)

I was able to build successfully by rolling back to 20150223. No gripes, I'm grateful for this program - just figured you might want to be aware / others if they have the same issue. It's a little funny, because today is the first day I have decided to mess with my keyboard's firmware in months  :))

Got it.  I cleaned those files up.  Cleaned them up so nice that my #defines for bpiphany's controllers up and disappeared.  D'oh!

I updated the file *again*.  If you re-download you should be fine.  That's why I leave those previous versions up ;)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: n7 on Sun, 01 March 2015, 21:47:37
I updated the file *again*.  If you re-download you should be fine.  That's why I leave those previous versions up ;)
Re-downloaded, rebuilt and flashed. Working as expected. Thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: radish on Sun, 01 March 2015, 22:19:21
awesome. i was able to map some macros and feed them straight in to a python console. amazing work sir!

you got my approval.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 04 March 2015, 16:53:14
I did something I've been putting off for a long time: schedule usage analysis.  I found some areas for improvement and the next release is going to be much faster.  The keyboard will be bumped to a 1000Hz polling rate.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 05 March 2015, 09:40:29
Man, those ATmega32U2 chips in the bpiphany controllers are a pain.  Only a kilobyte?  That's it? 1024 is all I get??  I've got an 8x18 matrix to track!! ugh.  The newest build uses every single byte of memory, counting reserved stack space.   ...mumble...damn asynchronous USB using up all my stack...mumble...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Thu, 05 March 2015, 11:32:32
Man, those ATmega32U2 chips in the bpiphany controllers are a pain.  Only a kilobyte?  That's it? 1024 is all I get??  I've got an 8x18 matrix to track!! ugh.  The newest build uses every single byte of memory, counting reserved stack space.   ...mumble...damn asynchronous USB using up all my stack...mumble...

Could this be bad for future potential builds?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 05 March 2015, 11:35:31
Nah.  I'll always be able to build it. The small hardware just doesn't get all the features, that's all. I use a Black Petal so I need to keep it going for my own good ;).
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Thu, 05 March 2015, 12:56:33
Ah, gotcha, I'm hoping to get my hands on a QFR + Frosty Flake...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: waffle418 on Thu, 05 March 2015, 22:27:09
I just got an older GON MxMini and it uses the ps2avr adapter.  I want to get a second one so I don't have to move them from office to the the house and vice versa.  Do you think this will work?  If so, how do I acquire one :D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 05 March 2015, 22:32:10
Sorry,  not supported :(
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: waffle418 on Fri, 06 March 2015, 08:22:37
Sorry,  not supported :(

No worries, I appreciate the quick response!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vicibz on Sat, 07 March 2015, 06:57:11
I got rid of the FN_LOCK LED which would light up if any function layer was locked.  Instead, there is FN_ACTIVE through FN9_ACTIVE.  You can pick exactly which layer you want to indicate, and they illuminate even if the layer isn't locked.

Nice. Would it be possible to add "FNX_ACTIVE" (or whatever) which would illuminate for any Fn active?
Thanks
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 07 March 2015, 08:52:12
Yeah, that's probably a good idea
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 07 March 2015, 12:01:05
It's up.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vicibz on Sat, 07 March 2015, 14:14:48
It's up.
Perfectly working, thanks.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: fendent on Mon, 09 March 2015, 15:48:28
Is there some reason that holding down backslash while typing a letter would cause an additional backslash to appear after the letter?

So "\q" often turns into "\q\" if i don't lift my finger up quickly enough. This only seems to happen under Linux, not OSX.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 09 March 2015, 15:56:27
This is a known issue with NKRO in Linux.  You can disable it in the config console.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 09 March 2015, 15:59:24
(known issue with Linux, not with the firmware)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: fendent on Mon, 09 March 2015, 22:42:52
Is there/would there ever be a way to record macros on the fly?

By the way, I love this firmware and I recommend it every chance I can! (which is often right now)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 09 March 2015, 23:40:34
Is there/would there ever be a way to record macros on the fly?

By the way, I love this firmware and I recommend it every chance I can! (which is often right now)
Give me more details about how you would want it to work. When I'm not on my phone I'll write out my full thoughts on the matter.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 09 March 2015, 23:44:38
Is there/would there ever be a way to record macros on the fly?

By the way, I love this firmware and I recommend it every chance I can! (which is often right now)
PS thanks for your support, it means a lot to me.  The code has really solidified over the past few versions to the point that I'm actually happy with it, which is saying a lot given the stuff I do outside my hobbies.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: fendent on Tue, 10 March 2015, 08:15:19
Is there/would there ever be a way to record macros on the fly?

By the way, I love this firmware and I recommend it every chance I can! (which is often right now)
Give me more details about how you would want it to work. When I'm not on my phone I'll write out my full thoughts on the matter.

My thoughts right now are something along the line of sending a scancode to signal recording has started. You would then have to send the scancode for one of your macro registers, which would signify that you would like to record to that macro register. You would begin to type out your macro, then when you are done, you would send the scancode for record again. (or alternatively, a different recording stop scancode)

Maybe reserve a couple of macro registers as on-the-fly registers so you don't accidentally record over a preset macro?

SCANCODE_MACRORECORD
SCANCODE_M8
select * from table where
SCANCODE_MACRORECORD

Something like that?

I don't know the internals of how you store/retrieve from the macro registers, so this could just be a pipe-dream.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 10 March 2015, 09:50:11
Okay so first of all, this is already supported in the RAM macro.  You press record, type out what you want, and press record again.  Then you press play to send what you recorded.  That is available and working.

I assume what you're talking about is recording macros on the fly to non-volatile memory so it can survive a power loss.  Let's talk about that.

Right now, M1 through M14 are stored in Flash memory with the program and layer maps.  The macros are entered into the GUI, then packed into the macro buffer, then programmed.  They get packed in one after another so it doesn't matter how long or short any individual macro is, as long as all of them together fit into the reserved space for macros.  When you press a M? key, it looks up the start index of that key's macro and just reads scancodes out of flash until it hits a terminator.

I like this approach for a few reasons.  The GUI makes changing macros is low effort, and you can see what you're scripting so no typos.  You can also add things to the macro that can't be typed.

Now, let's consider how this would be done on the fly.  They keyboard can't reprogram its own Flash memory, so your only option is EEPROM.  So, we reserve a part of EEPROM for the config settings that are already there, then we use the rest for macros.  Since these macros can be changed at any time, I can't pack them in tightly like in Flash.  The AVRs have very little RAM so I'll not be able to re-organize the macro buffer when new macros are recorded.  Instead, I'll have to split it up equally and restrict the max length of any individual macro.  Depending on the number of macros we try to fit, this could be unreasonably short.

But say we make a compromise and implement it.  Now you can record a permanent macro the way you described.  Maybe you make a mistake and have to redo it 20% of the time, but that's not such a big deal.  However if you are constantly re-recording macros to use temporarily, you now have to worry about EEPROM wear-out and you could have just used RAM instead which has no wear-out.  If you record it once and don't change it for months, you could have just used Flash.  The use case for keyboard-programmable non-volatile macros is narrow.

Okay, so that's why the code is currently the way it is.  But I understand that people want this and TMK already does it, so I'm willing to give it a try.

But let's plan it well.  How many macros should be this way, and what is the required max length?  I need to get requirements before I can make a design.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: fendent on Tue, 10 March 2015, 12:02:03
To be honest, I did not know about the RAM macro! That sounds like it would suit my needs quite well! As a developer myself, I certainly understand those constraints and agree with them. Having flexibility in the size of your macros instead of x = m / 14 seems like a better use of space. Personally, it sounds like the RAM macro would work just fine for me.

It sounds like if other people have been requesting this they may have better input for their use cases. Mine are mostly short repetitive command-line tasks.

Thank you for being so responsive and forthcoming about the internals and thinking behind your process. It's been very enlightening.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 10 March 2015, 14:17:28
Cool give that RAM macro a try, see if it's useful.

Of course, the EEPROM is just sitting there, it would be nice if we could use it.  The commonly used AVRs have 1kB available.  I'm using only a few bytes for the config settings.  I can only think of two candidates for the rest of that space: metrics and macros.

Each macro character takes two bytes, one for modifier map and one for scan code.  So if I reserved half of EEPROM for a recordable macro, that would allow room 256 characters.  That's a lot for one macro.

Metrics is a tough problem.  Keeping long term tallys of things takes a lot of memory, which AVRs don't generally have, but there might be something there.  Off the top of my head, I can imagine tracking WPM.  Calculating a heat-map might be a stretch goal.

I've got the idea in my head now, so something will likely come of it.  It will probably take at least a week for some ideas to mature before escaping through my fingers.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: TLSC.wipeOut on Tue, 10 March 2015, 18:36:14
Hi metalliqaz! just wondering if you will be implementing some support for the Octagon 75% board?
thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 10 March 2015, 18:42:31
Hi metalliqaz! just wondering if you will be implementing some support for the Octagon 75% board?
thanks!

Yes, assuming the following conditions are met:
Same goes for RedScarf boards.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 10 March 2015, 19:11:50
Hi metalliqaz! just wondering if you will be implementing some support for the Octagon 75% board?
thanks!

Yes, assuming the following conditions are met:
  • It uses a USB AVR part (like ATmega32U4, ATmega32U2, AT90USB1286, etc)
  • It has an accessible bootloader
  • I won't own one, so I'll need a hardware specification provided
  • I won't own one, so I'll need a volunteer to test it
Same goes for RedScarf boards.

Scratch all that.  Looks like someone posted TMK support, so I can just get the spec from there.  I'll add support. :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Wed, 11 March 2015, 14:50:44
I don't know if you remember a while back, me asking about support for a Planck...you saying that it's not a hard wired (it's hand wired) so the inconsistency throws a monkey in the wrench...? Well, Jack announced that they have a PCB, and best of all, it's backlit...AND has an ATmega32U4. Let us all rejoice.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 11 March 2015, 14:54:16
I don't know if you remember a while back, me asking about support for a Planck...you saying that it's not a hard wired (it's hand wired) so the inconsistency throws a monkey in the wrench...? Well, Jack announced that they have a PCB, and best of all, it's backlit...AND has an ATmega32U4. Let us all rejoice.

Yeah I think I saw on Reddit or something that they were going to make a PCB.  Is it out yet?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Wed, 11 March 2015, 14:58:25
I don't know if you remember a while back, me asking about support for a Planck...you saying that it's not a hard wired (it's hand wired) so the inconsistency throws a monkey in the wrench...? Well, Jack announced that they have a PCB, and best of all, it's backlit...AND has an ATmega32U4. Let us all rejoice.

Yeah I think I saw on Reddit or something that they were going to make a PCB.  Is it out yet?

Few more weeks....I can't explain my excitement. Also, do you have a donation link?...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 11 March 2015, 15:21:08
No donate link.  Enjoy it for free.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Wed, 11 March 2015, 15:28:36
No donate link.  Enjoy it for free.

You're truly something else man, I can't express my gratitude enough.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: hasu on Wed, 11 March 2015, 16:58:28
Just like to let you know article on very interesting trick by komar.
I didn't try this myself yet so far but I think we can program flash from keyboard firmware, if I understand it correctly. And I think komar's GH60 firmware uses this trick for updating keymap.

http://blog.komar.be/using-atmels-dfu-bootloader-abi-on-atmega32u4-in-avr-gcc/

Quote
They keyboard can't reprogram its own Flash memory
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 11 March 2015, 18:00:37
Just like to let you know article on very interesting trick by komar.
I didn't try this myself yet so far but I think we can program flash from keyboard firmware, if I understand it correctly. And I think komar's GH60 firmware uses this trick for updating keymap.

http://blog.komar.be/using-atmels-dfu-bootloader-abi-on-atmega32u4-in-avr-gcc/

Quote
They keyboard can't reprogram its own Flash memory

Yeah that's a good post.  I have actually read through the DFU spec so I've seen those functions, however I've never considered using them.  Never had a need that was worth the trouble.  As it stands right now my macro design would not really be able to make use of it, but if I have something else in the future that can't be stored in EEPROM, I'll remember. 
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: fendent on Fri, 13 March 2015, 12:45:02
This is a known issue with NKRO in Linux.  You can disable it in the config console.

Switching to 6KRO did not fix the issue, unfortunately. I tried the two 6KRO modes and I still had this issue.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 13 March 2015, 12:50:30
This is a known issue with NKRO in Linux.  You can disable it in the config console.

Switching to 6KRO did not fix the issue, unfortunately. I tried the two 6KRO modes and I still had this issue.

After switching modes, did you unplug your keyboard?  Those settings only take effect when the USB device is enumerated when it is plugged in.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: pichu23 on Fri, 13 March 2015, 18:57:12
Hiya metalliqaz,

I know I've asked before and this is a long shot but could the bl_enable for techkeys be set to default for your next update? D: i feel it's a super waste of a key to be set for bl but then again I know not many people will want it on.
The latest version techkey bl_enable doesn't work for some reason too but the older ones are fine. :D
Many thanks again !

:)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 13 March 2015, 19:49:43
Hiya metalliqaz,

I know I've asked before and this is a long shot but could the bl_enable for techkeys be set to default for your next update? D: i feel it's a super waste of a key to be set for bl but then again I know not many people will want it on.
The latest version techkey bl_enable doesn't work for some reason too but the older ones are fine. :D
Many thanks again !

:)

I must have missed it last time.  You make a good point.  The Techcard doesn't get any love.  I'll take a look.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 14 March 2015, 09:43:36
Hiya metalliqaz,

I know I've asked before and this is a long shot but could the bl_enable for techkeys be set to default for your next update? D: i feel it's a super waste of a key to be set for bl but then again I know not many people will want it on.
The latest version techkey bl_enable doesn't work for some reason too but the older ones are fine. :D
Many thanks again !

:)

Well, I took a look at the code and I can't find any reason why the BL_ENABLE key wouldn't work on the Techcard.  It works on the other boards.  That worries me a little bit, because the LED code got an overhaul and I want to make sure everything is perfect.  I at least made backlights on by default.  When I finish Octagon support I'll upload a new version.

thanks for the feedback
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: pichu23 on Sat, 14 March 2015, 21:34:54
Hiya metalliqaz,

I know I've asked before and this is a long shot but could the bl_enable for techkeys be set to default for your next update? D: i feel it's a super waste of a key to be set for bl but then again I know not many people will want it on.
The latest version techkey bl_enable doesn't work for some reason too but the older ones are fine. :D
Many thanks again !

:)

Well, I took a look at the code and I can't find any reason why the BL_ENABLE key wouldn't work on the Techcard.  It works on the other boards.  That worries me a little bit, because the LED code got an overhaul and I want to make sure everything is perfect.  I at least made backlights on by default.  When I finish Octagon support I'll upload a new version.

thanks for the feedback

Great, thanks :) I'll try again tomorrow to see what when wrong. :3
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 14 March 2015, 22:40:37
New version posted.  See changelog in 3rd post.

I don't know why it took me so long, but I fixed the picker tool to actually be something I'd want to use.  It automatically brings the other window to the top when clicking a button, which has the effect of halving the number of clicks required to assign scancodes to keys.

If anyone actually uses Octagon or Lightsaver, you're probably going to have to help with some debugging first.  I don't own either board, so I can't test it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: tedk84 on Mon, 16 March 2015, 12:03:19
im going to build the hypermicro - will there be support for it ? its a teensy 2.0 controller (atmega32u4).
shipment of the pcb will be in a couple of weeks i think...

http://deskthority.net/workshop-f7/hypermicro-development-t8490.html
http://deskthority.net/group-buys-f50/hypermicro-t9565-150.html

can i help you somehow ?

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 16 March 2015, 12:19:31
im going to build the hypermicro - will there be support for it ? its a teensy 2.0 controller (atmega32u4).
shipment of the pcb will be in a couple of weeks i think...

http://deskthority.net/workshop-f7/hypermicro-development-t8490.html
http://deskthority.net/group-buys-f50/hypermicro-t9565-150.html

can i help you somehow ?

Absolutely.  I won't own one, so I'll need someone to try some test builds to work out the kinks.  Just let me know when you have your hardware and I'll bring it in.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: pichu23 on Mon, 16 March 2015, 13:01:00
New version posted.  See changelog in 3rd post.

I don't know why it took me so long, but I fixed the picker tool to actually be something I'd want to use.  It automatically brings the other window to the top when clicking a button, which has the effect of halving the number of clicks required to assign scancodes to keys.

If anyone actually uses Octagon or Lightsaver, you're probably going to have to help with some debugging first.  I don't own either board, so I can't test it.

Thank you :) The techkeys card now works now like a charm!
Btw, just wondering if the blue led on the top right is meant to light up as well? It's nothing serious/big, just wondering hehe :D
Once again, thanks again for your hard work!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 16 March 2015, 13:55:01
I believe that by default that is assigned to any_fn_active, but i don't have one, so I'm not sure.  The card does have an indicator led,  though.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: fendent on Tue, 17 March 2015, 10:09:50
This is a known issue with NKRO in Linux.  You can disable it in the config console.

Switching to 6KRO did not fix the issue, unfortunately. I tried the two 6KRO modes and I still had this issue.

After switching modes, did you unplug your keyboard?  Those settings only take effect when the USB device is enumerated when it is plugged in.

Works great! Thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 17 March 2015, 10:53:08
RFC: "Rapid Fire" game mode

I'm adding a new mode for gaming; it's an automatic repeating function for held keys.  The basic idea is you press and hold a key for $HOLD_TIME ms, at which point it starts automatically tapping the key every $REPEAT_TIME ms.

I could do it one of a few ways:
(1)  Any key that is held long enough will start rapid fire.  Not sure this is useful because if you are holding W to run forward, it will start tapping which is most likely not helpful.
(2)  Only the most recently pressed key will start repeating.  Same issue as above.  Is there any other use for this?
(3)  Only Macros can start repeating.  This allows you to program a key into a spare macro and when you hold it the whole thing will repeat.  Useful if for some reason you want to rapid-fire two or more keys in sequence.  The Macro could be placed on a gaming layer.
(4)  Only a programmable key location on the board will be assigned to rapidfire.  This would be pure gamer, but wouldn't respond to layers, so it would have to be programmed per game layout.

No matter which is used, the feature would have to be enabled first with a key that works similarly to Scroll Lock.

Right now I'm leaning towards #3.

Feedback welcome.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vicibz on Tue, 17 March 2015, 13:25:51
What about being able to configure each key individually with two modes: "Normal" (default) and "Rapid Fire".
This way you could have the space bar in "normal" mode in the default layer and in "rapid fire" mode in layer two (i.e. triggered with Fn0).
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: pichu23 on Tue, 17 March 2015, 13:27:02
I believe that by default that is assigned to any_fn_active, but i don't have one, so I'm not sure.  The card does have an indicator led,  though.

hehe, got it sorted. amazing as always!  ;D
thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 17 March 2015, 14:00:31
What about being able to configure each key individually with two modes: "Normal" (default) and "Rapid Fire".
This way you could have the space bar in "normal" mode in the default layer and in "rapid fire" mode in layer two (i.e. triggered with Fn0).

The architecture doesn't actually support that right now, but you made me think about something I've not considered before, and I may actually change it.  Thanks, I'm going to think more on this.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 17 March 2015, 21:45:16
It's good to have a creative outlet

[attachimg=1]
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Tue, 17 March 2015, 22:36:00
DUDE!...I love you. That's it, you and Jack Humbert. I love you guys.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Wilba on Thu, 19 March 2015, 00:21:13
I had only just finished building the first Planck prototype PCB with switches and case, and asked metalliqaz for Planck support. I sent him my TMK fork and he sent back a beta version in a couple of hours.

I know it's a pretty bog standard ATmega32U4 matrix, but still...  :eek:

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 19 March 2015, 09:04:12
Nice!  I like it with the black caps
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: badboybry9000 on Thu, 19 March 2015, 14:08:36
I see you added locking caps some time ago which I am very interested in. Would it be possible to also add support for a locking scroll lock?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 19 March 2015, 14:09:53
Possible? Yes.  But would anyone actually use it?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: greath on Thu, 19 March 2015, 14:47:51
RFC: "Rapid Fire" game mode

I'm adding a new mode for gaming; it's an automatic repeating function for held keys.  The basic idea is you press and hold a key for $HOLD_TIME ms, at which point it starts automatically tapping the key every $REPEAT_TIME ms.

I could do it one of a few ways:
(1)  Any key that is held long enough will start rapid fire.  Not sure this is useful because if you are holding W to run forward, it will start tapping which is most likely not helpful.
(2)  Only the most recently pressed key will start repeating.  Same issue as above.  Is there any other use for this?
(3)  Only Macros can start repeating.  This allows you to program a key into a spare macro and when you hold it the whole thing will repeat.  Useful if for some reason you want to rapid-fire two or more keys in sequence.  The Macro could be placed on a gaming layer.
(4)  Only a programmable key location on the board will be assigned to rapidfire.  This would be pure gamer, but wouldn't respond to layers, so it would have to be programmed per game layout.

No matter which is used, the feature would have to be enabled first with a key that works similarly to Scroll Lock.

Right now I'm leaning towards #3.

Feedback welcome.

A bit confused on the options you are listing, but let me explain to you how I personally would use it (and I feel like other gamers may use it) and maybe you could determine the best solution from there?

I would like the WASD cluster to be able to double-tap for some FPS instead of repeating forever. For example I would like to hit "W" and the keyboard sends "W" once and then quickly sends "W" again and holds the key.



Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: badboybry9000 on Thu, 19 March 2015, 15:58:05
Possible? Yes.  But would anyone actually use it?

I suppose most people would not use it. My thinking was if I can free up the caps lock indicator LED for some other purpose by using a locking switch for caps lock, it may be worthwhile to free up the scroll lock LED as well.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 19 March 2015, 16:58:55
Possible? Yes.  But would anyone actually use it?

I suppose most people would not use it. My thinking was if I can free up the caps lock indicator LED for some other purpose by using a locking switch for caps lock, it may be worthwhile to free up the scroll lock LED as well.

Yeah, I see what you mean.  I also want to have more indicators, that's why I'm designing myself a new board that will have at least 6 status LEDs, rather than just two or three.

The original inspiration for Locking Caps was to emulate old-school Shift Lock buttons.  However it's also useful for this purpose.  Of course, you also need to dig up an MX Lock switch.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Thu, 19 March 2015, 18:14:12
I was trying to think of a decent way to implement one of the LEDs to act as status indicators, but I'm not sure how you'd trigger it...

For example, you double tap numlock and it blinks the corresponding number of times to indicate what layer you're on...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 19 March 2015, 18:28:38
I was trying to think of a decent way to implement one of the LEDs to act as status indicators, but I'm not sure how you'd trigger it...

For example, you double tap numlock and it blinks the corresponding number of times to indicate what layer you're on...

It has a built-in "status" system that you can see when you record a macro (repeating series of two blinks) or if there is an USB error (1 blink).  However, I dunno about this one... If you can't keep track of what layer you're using, how are you every going to type effectively?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Thu, 19 March 2015, 18:50:41
Ż\(°_o)/Ż just an idea, that's all.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Jerri on Fri, 20 March 2015, 05:08:35
Hi there, just got a short question.
Got my Pegasus Hoof yesterday (it's the 2015 revision), made a keymap, flashed it onto the Hoof, and now there are many keys on the keyboard that plainly are not working.
Doesn't it work yet with the new hoof?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 20 March 2015, 05:13:25
Hi there, just got a short question.
Got my Pegasus Hoof yesterday (it's the 2015 revision), made a keymap, flashed it onto the Hoof, and now there are many keys on the keyboard that plainly are not working.
Doesn't it work yet with the new hoof?
It doesn't. Will you be my test subject?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 20 March 2015, 05:18:05
Ż\(°_o)/Ż just an idea, that's all.
You may be on to something though. I'm adding programmable status to my wish list
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Jerri on Fri, 20 March 2015, 05:20:36
Hi there, just got a short question.
Got my Pegasus Hoof yesterday (it's the 2015 revision), made a keymap, flashed it onto the Hoof, and now there are many keys on the keyboard that plainly are not working.
Doesn't it work yet with the new hoof?
It doesn't. Will you be my test subject?


how can i help? Test subject sounds rude! :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 20 March 2015, 05:22:10
Since I don't own the hardware I need someone to load test builds until it works
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Jerri on Fri, 20 March 2015, 05:32:08
I thought something like that, but yes, i can try out some builds. Can't be worse than the weird working controller  ;D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 20 March 2015, 05:35:59
Thanks.  First things first,  can you try building a Flake V2 build and running that on your Hoof V2?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Jerri on Fri, 20 March 2015, 05:54:53
Done,
if i try all keys on the main block (numbers/letters) and i go through from left to right, only these ones work:
476890-=ruyiop[]\fjhl;'bnm

Then i wanted to try shift, shift seems to work like the F3 key (search in notepad popped up), and F3 seems to work like the win key.

Edit: My Filco TKL is Majestouch 1 and it's ansi US layout... my keymap in windows is english international (for the deadkeys)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 20 March 2015, 06:00:33
Okay sounds like it at least works better than hoof1. I'll start with flake2
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Jerri on Fri, 20 March 2015, 06:03:33
wait, didn't seem so to me, i'll flash hoof again, and write what works, be right back
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Jerri on Fri, 20 March 2015, 06:16:14
So hi again,
on Hoof keymap/software Shift works as intended, winkey, too, and these are the keys working (like last time, after that with left shift):
`1234567890-=qwertyuiop[]\asdfghjkl;'bn/
!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"BN?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 20 March 2015, 06:35:01
Alright, cool.  I'm going to start hacking.  I'll probably have a new build tomorrow.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Jerri on Fri, 20 March 2015, 06:43:47
Then i've to say thank you for helping me out  :thumb: .
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: worldspawn on Sat, 21 March 2015, 19:48:53
I'm trying to get this to work with a modified Atreus:
(http://i.imgur.com/j3MO802.png)

(http://i.imgur.com/uIKNAuk.png)

(http://i.imgur.com/SOsvSkd.png)

Can someone help with the matrix-pin association?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 21 March 2015, 21:25:27
I added support for the PCB that the guy has on his web page, so the "vanilla" atreus.

It uses these pins:

const matrix_def_t PROGMEM ROW_LIST[NUMBER_OF_ROWS] = {
   { REF_PORTD , 0 },
   { REF_PORTD , 1 },
   { REF_PORTD , 3 },
   { REF_PORTD , 2 }
};
const matrix_def_t PROGMEM COL_LIST[NUMBER_OF_COLS] = {
   { REF_PORTB , 7 },
   { REF_PORTB , 6 },
   { REF_PORTF , 7 },
   { REF_PORTF , 6 },
   { REF_PORTD , 6 },
   { REF_PORTD , 4 },
   { REF_PORTE , 6 },
   { REF_PORTB , 4 },
   { REF_PORTB , 5 },
   { REF_PORTC , 6 },
   { REF_PORTD , 7 }
};

If you changed that assignment when you created your custom version, then you are going to need some custom firmware.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: worldspawn on Sat, 21 March 2015, 21:41:27
I've got an extra row and column that he didn't have so I need to have a different mapping.  Is that data in a file that I can modify myself? I couldn't find anything like that in the download.  There were a couple errors in the image I posted, corrected below.

I'd need it to read(if it's reading top to bottom, left to right):

const matrix_def_t PROGMEM ROW_LIST[NUMBER_OF_ROWS] = {
   { REF_PORTE , 6 },
   { REF_PORTB , 0 },
   { REF_PORTE , 2 },
   { REF_PORTC , 6 },
   { REF_PORTD , 5 }
};
const matrix_def_t PROGMEM COL_LIST[NUMBER_OF_COLS] = {
   { REF_PORTB , 4 },
   { REF_PORTB , 5 },
   { REF_PORTD , 6 },
   { REF_PORTD , 7 },
   { REF_PORTC , 7 },
   { REF_PORTB , 6 },
   { REF_PORTD , 3 },
   { REF_PORTB , 3 },
   { REF_PORTB , 7 },
   { REF_PORTD , 0 },
   { REF_PORTD , 1 },
   { REF_PORTD , 2 }
};


Where the matrix layout is:

____  ____  ____  ____  ____  ____  ____  ____  ____  ____  _____  _____
         |        |        |R4C3|R4C4|         |         |R4C7|R4C8|         |          |           
R3C0|R3C1|R3C2|R3C3|R3C4|R3C5|         |R3C7|R3C8|R3C9|R3C10|R3C11
R2C0|R2C1|R2C2|R2C3|R2C4|R2C5|R2C6|R2C7|R2C8|R2C9|R2C10|R2C11
R1C0|R1C1|R1C2|R1C3|R1C4|R1C5|R1C6|R1C7|R1C8|R1C9|R1C10|R1C11
R0C0|R0C1|R0C2|R0C3|R0C4|R0C5|R0C6|R0C7|R0C8|R0C9|R0C10|R0C11
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 21 March 2015, 23:44:39
Sorry, it's not customizable like that.  Hacking on 1-off customs is really a job for TMK, I think.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: worldspawn on Sun, 22 March 2015, 00:24:54
Sorry, it's not customizable like that.  Hacking on 1-off customs is really a job for TMK, I think.

That's very disappointing to hear, I'm making a bunch of these boards for people, and your configurator is so much easier to use/understand, I have no idea how to use that TMK thing...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: regack on Sun, 22 March 2015, 14:37:37
Sorry, it's not customizable like that.  Hacking on 1-off customs is really a job for TMK, I think.

That's very disappointing to hear, I'm making a bunch of these boards for people, and your configurator is so much easier to use/understand, I have no idea how to use that TMK thing...


Learning how TMK works is useful, since it kind of teaches at a low level how the magic is actually happening.  It's also really useful for troubleshooting.  Now, if you haven't already made your PCBs, what you could do is borrow the ATMEGA pin configuration from one of the existing designs supported by metalliqaz's (or should that just be '? I'm not sure) firmware, and it will work.  The biggest problem you'll have with this is that your physical layout won't match the virtual layout in the software.  You'll just have to know how it works for your keyboard/keypad layout.   The other big problem is that you ethically won't be able to ask metalliqaz for help with your unofficial/unsupported one-off configuration :D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 26 March 2015, 18:39:26
Posted a new version.  If anyone has the new SixShooter PCB, give it a shot and let me know if it works.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Thu, 02 April 2015, 18:05:47
I wanted to see if I'm using/doing this right...

I'm trying to use the utmost lower left key as a FN key (momentary) with the tap being CTRL...but for some reason, it doesn't seem to be working that way. When I'm in my virtual machine, I have to hit CTRL and ALT for it to release my mouse and keyboard to the host OS...for whatever reason, when I hold ALT and tap the FN key, it doesn't release them. Am I using this the correct way?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 02 April 2015, 21:01:02
I wanted to see if I'm using/doing this right...

I'm trying to use the utmost lower left key as a FN key (momentary) with the tap being CTRL...but for some reason, it doesn't seem to be working that way. When I'm in my virtual machine, I have to hit CTRL and ALT for it to release my mouse and keyboard to the host OS...for whatever reason, when I hold ALT and tap the FN key, it doesn't release them. Am I using this the correct way?

The problem is the way the tap key is implemented.  You see, when you assign that setting to a key and the keyboard detects a tap, it secretly queues a mini macro with one key in it.  That's all fine except that the way macros are implemented, they interrupt the normal keyboard buffer when they are playing.  So, your keyboard is essentially lifting the Alt key to press the Ctrl key.

There are many ways to fix this problem.  I'm actually planning a large redesign that will allow far more freedom in mapping keys and will make these kinds of problems go away.  I'm actually designing a whole new keyboard for the purpose of continuing Easy AVR development.  (My Epsilon is getting old)

In the mean time, I may be able to fix this problem with a patch.  I'll take a look at the code tomorrow.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Thu, 02 April 2015, 21:20:08
The problem is the way the tap key is implemented.  You see, when you assign that setting to a key and the keyboard detects a tap, it secretly queues a mini macro with one key in it.  That's all fine except that the way macros are implemented, they interrupt the normal keyboard buffer when they are playing.  So, your keyboard is essentially lifting the Alt key to press the Ctrl key.

There are many ways to fix this problem.  I'm actually planning a large redesign that will allow far more freedom in mapping keys and will make these kinds of problems go away.  I'm actually designing a whole new keyboard for the purpose of continuing Easy AVR development.  (My Epsilon is getting old)

In the mean time, I may be able to fix this problem with a patch.  I'll take a look at the code tomorrow.

Awesome, thanks again. Will the new board be sold? or just a one off for your personal use?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 04 April 2015, 13:35:35
The problem is the way the tap key is implemented.  You see, when you assign that setting to a key and the keyboard detects a tap, it secretly queues a mini macro with one key in it.  That's all fine except that the way macros are implemented, they interrupt the normal keyboard buffer when they are playing.  So, your keyboard is essentially lifting the Alt key to press the Ctrl key.

There are many ways to fix this problem.  I'm actually planning a large redesign that will allow far more freedom in mapping keys and will make these kinds of problems go away.  I'm actually designing a whole new keyboard for the purpose of continuing Easy AVR development.  (My Epsilon is getting old)

In the mean time, I may be able to fix this problem with a patch.  I'll take a look at the code tomorrow.

Awesome, thanks again. Will the new board be sold? or just a one off for your personal use?

You're only using the v2 Flake, right?  I've got a test build I'd like you to try, if possible.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Sat, 04 April 2015, 16:15:29
The problem is the way the tap key is implemented.  You see, when you assign that setting to a key and the keyboard detects a tap, it secretly queues a mini macro with one key in it.  That's all fine except that the way macros are implemented, they interrupt the normal keyboard buffer when they are playing.  So, your keyboard is essentially lifting the Alt key to press the Ctrl key.

There are many ways to fix this problem.  I'm actually planning a large redesign that will allow far more freedom in mapping keys and will make these kinds of problems go away.  I'm actually designing a whole new keyboard for the purpose of continuing Easy AVR development.  (My Epsilon is getting old)

In the mean time, I may be able to fix this problem with a patch.  I'll take a look at the code tomorrow.

Awesome, thanks again. Will the new board be sold? or just a one off for your personal use?

You're only using the v2 Flake, right?  I've got a test build I'd like you to try, if possible.

Yep, V2 FF. I tried it, but it had the same effect. I'm assuming the way I'm trying to use the function isn't supported...or very practical.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 04 April 2015, 17:17:05
But it SHOULD work, so now I've got to figure out why.  I'll try a test on one if my boards
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Sat, 04 April 2015, 19:56:44
But it SHOULD work, so now I've got to figure out why.  I'll try a test on one if my boards

Ok, so I discovered something. For whatever reason, it doesn't like HID_KEYBOARD_SC_LEFT_CONTROL being in 2 places maybe? I currently have it at the Caps Lock position and trying to use it as a tap key.

I discovered it by clicking a random position in the Keymapper, and tapping the FN/Ctrl key...and one of 2 things would happen...

1. Nothing at all...
2. It registered L_Alt for some reason.

However, if I change the FN/(tap)Ctrl to FN/(tap)Q (I just chose that randomly...) it works fine. I hope this all makes sense, it's kinda hard to explain/describe.

Edit: On second thought, my hypothesis about it not liking the same key in 2 places doesn't make sense, because Q ends up being in 2 places...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 04 April 2015, 20:03:16
Wow that's wild.  This will be a fun one to investigate. This is definitely something I didn't test.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Sat, 04 April 2015, 20:14:38
Wow that's wild.  This will be a fun one to investigate. This is definitely something I didn't test.

I don't know if you want all this feedback, but here goes...

In both versions of the mapper (current release and the beta you sent me), the tap key (still assigned as Q) works while holding a modifier, but it definitely interrupts an alphanumeric key. So to elaborate, if I hold ALT and tap the FN key, ALT stays pressed and Q is also sent at the same time. But if I hold any letter or number and tap FN, you see the letter/number shut off briefly and Q activates, then goes back to the letter/number.

I'm going to try testing another modifier as the tap to see if it's something specifically related to the CTRL scancode...but I've not got much time...gotta get ready for midnight mass....

Edit: Ok, so, I tried random keys, it seems as though the tap function works fine with alphanumeric and backspace...however when I try the L/R Shift, L/R CTRL or ALT...no go, it registers another key IF it registers.

Last edit (for now): I tried moving the FN key to a different position, same results.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 04 April 2015, 23:13:30
So, the first thing is the way it suspends the keys you're pressing while it sends the tap key.  That is currently by design and it won't change until I restructure it over the next week or so.

The second thing is a really awesome memory corruption bug, caused by a buffer overflow, caused by me not anticipating a modifier ending up in the tapkey slot.

I'll fix it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: ctm on Mon, 06 April 2015, 15:10:00
I got in a problem again. I generated .hex file and use FLIP to program my Frosty Flake. Erase and blank check both executes successfully, but when program part shows a red dot instead of a green one. It does not show any error message either. Could you tell me how to solve it?

EDIT: never mind. Maybe before I was not properly putting the controller into bootloader mode. It's fine now.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 07 April 2015, 09:28:23
Glad I could help ;)


Project Update:
The redesign is progressing well.  A lot of code is changing to the first release may be of beta quality.  Unfortunately, it looks like the save file format will have to change, so it may not be able to load files saved with older versions and you'd have to rebuild your maps :( .  Assuming all goes well, I'd like to get these features in:

new rapid fire mode
can set toggle/dual-use modes for all keys on all layers, rather than only modifiers
can set all keys to be sent with any combination of mods, rather than only fn with shift
merged macro output buffer so as to not interrupt the key presses
mx lock on scroll/caps/num, rather than only caps
memory use reduction on bpiphany controllers to allow for expansion

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Tue, 07 April 2015, 18:34:34
Glad I could help ;)


Project Update:
The redesign is progressing well.  A lot of code is changing to the first release may be of beta quality.  Unfortunately, it looks like the save file format will have to change, so it may not be able to load files saved with older versions and you'd have to rebuild your maps :( .  Assuming all goes well, I'd like to get these features in:

new rapid fire mode
can set toggle/dual-use modes for all keys on all layers, rather than only modifiers
can set all keys to be sent with any combination of mods, rather than only fn with shift
merged macro output buffer so as to not interrupt the key presses
mx lock on scroll/caps/num, rather than only caps
memory use reduction on bpiphany controllers to allow for expansion

Sounds good, I'll give it a test when it's ready.  Who knows, I might even be able to find [ and ] on my JD40 if I have to do the layout again :))

Can I request one more feature, while you're playing with the fn+ coding?  That would be an "toggle fn layer + number lock on" key so whether num lock was on or off it is on once this key is pressed.  Yes, I'm too lazy to hide a num lock key somewhere on a layer :P

Obviously not a high priority, but it would be nice if it's not too hard.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Tue, 07 April 2015, 21:40:12
I know it's been asked before, I was just wondering that with the revamp, are Gon NERD boards going to be supported? Mine has an Amtel Mega32u4-AU on it. I don't know if that's diff....wait, let me google it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 07 April 2015, 22:45:54
I know it's been asked before, I was just wondering that with the revamp, are Gon NERD boards going to be supported? Mine has an Amtel Mega32u4-AU on it. I don't know if that's diff....wait, let me google it.

In GON's case, the problem is not the microcontroller, which is supported.  The problem is that he has changed the bootloader, so you need a special tool to load the DFU bootloader so that you can use other firmware like mine or TMK.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 07 April 2015, 23:10:11
Glad I could help ;)


Project Update:
The redesign is progressing well.  A lot of code is changing to the first release may be of beta quality.  Unfortunately, it looks like the save file format will have to change, so it may not be able to load files saved with older versions and you'd have to rebuild your maps :( .  Assuming all goes well, I'd like to get these features in:

new rapid fire mode
can set toggle/dual-use modes for all keys on all layers, rather than only modifiers
can set all keys to be sent with any combination of mods, rather than only fn with shift
merged macro output buffer so as to not interrupt the key presses
mx lock on scroll/caps/num, rather than only caps
memory use reduction on bpiphany controllers to allow for expansion

Sounds good, I'll give it a test when it's ready.  Who knows, I might even be able to find [ and ] on my JD40 if I have to do the layout again :))

Can I request one more feature, while you're playing with the fn+ coding?  That would be an "toggle fn layer + number lock on" key so whether num lock was on or off it is on once this key is pressed.  Yes, I'm too lazy to hide a num lock key somewhere on a layer :P

Obviously not a high priority, but it would be nice if it's not too hard.

Let me mull it around in the old noggin.  Although, my initial take is that this situation would be better solved with creative use of layers.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 09 April 2015, 10:06:58
I made all the changes and loaded it on my Epsilon for the first time.  What I've got now is a keyboard that, no matter what key you press, always sends Ctrl-W.  dafuq?  *facepalm*

This should be fun to debug
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Hzza on Thu, 09 April 2015, 10:09:50
TIL ctrl+w closes the current tab in IE...:D

Look forward to the redesign, since using this for the Nix Shooter I'm tempted to move over all my other boards now as well.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Thu, 09 April 2015, 12:59:40
[ "num lock on + FN" key request ]

Let me mull it around in the old noggin.  Although, my initial take is that this situation would be better solved with creative use of layers.
You might be right, may as well use the top row numbers instead of proper ones when the board's in number pad mode - they're more reliable!

Sounds like you have bigger problems, ctrl+w is a strange default :))
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 09 April 2015, 13:17:47
Probably memory misalignment
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MAR82 on Fri, 10 April 2015, 03:50:14
Just tried the SixShooter, and I'm having a few issues.
The firmware built fine and I was able to flash the Teensy with no problem, but it doesn't seem to work on Windows (only tested on 2 PCs, both running Win7). I also tested it on a Mac running 10.9.5 and it worked perfectly, so I don't get why it's not working on PC. Right now it is set to the default layout (media controls and volume).
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 10 April 2015, 06:49:25
Thanks for letting me know.  I'll try and see whats up.  Someone else said it was working for them, though.  Can you try a different layout and see ifvthat works?  For example, WASD
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Hzza on Fri, 10 April 2015, 07:11:21
My Six Shooter is working as expected on Vista 64, using Easy_keymap_20150326. I've set up media, navigation and alphnumeric keys and all work fine.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MAR82 on Fri, 10 April 2015, 07:57:57
Thanks for letting me know.  I'll try and see whats up.  Someone else said it was working for them, though.  Can you try a different layout and see ifvthat works?  For example, WASD

False Alert!
My bad! It turns out that the PC I was testing it on had some crappy USB ports in the front, and the PC at work did too. I tested it on the rear ports and it took forever to “install the driver”, but I left it when I went out for lunch and now it's working as it should (I tested a 2nd PC too)
The only funny thing is that when I flashed a simple WASD to it it worked right away, and my JD40 works on the same crappy ports... I have no explanation.

I wanted to also ask if there are any plans to maybe have the software support a custom matrix. I have a few old boards around the house and was thinking of rewiring them with a Teensy, and I suck at programming
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 10 April 2015, 08:14:01
When you plug in the sixshooter, the PC actually sees two USB devices.  One is a USB keyboard, the other is a generic HID device with the HID Usage Page for the media controls.  That device is less common and probably takes longer to install.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 10 April 2015, 08:16:13
As for the generic matrix, I've looked at it several times.  There are many issues, but the only one that makes sense for this project is if I created a standard matrix and published the pinout diagram.  Then boards that are wired according to that standard would work.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MAR82 on Fri, 10 April 2015, 08:26:33
When you plug in the sixshooter, the PC actually sees two USB devices.  One is a USB keyboard, the other is a generic HID device with the HID Usage Page for the media controls.  That device is less common and probably takes longer to install.

Ok thanks for the help even if the problem sort of solved itself (in a way), but still tanks for getting back to me on it.  :)
So yeah the only strange thing is that it takes a lot longer to detect than the JD40, nowI just wonder way  :confused:

As for the generic matrix, I've looked at it several times.  There are many issues, but the only one that makes sense for this project is if I created a standard matrix and published the pinout diagram.  Then boards that are wired according to that standard would work.

I'll keep an eye out for it  ;)

Thanks again for making this tool for those of us that suck at anything that needs programming (I'm still trying my best to learn)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sun, 12 April 2015, 07:03:29
As for the generic matrix, I've looked at it several times.  There are many issues, but the only one that makes sense for this project is if I created a standard matrix and published the pinout diagram.  Then boards that are wired according to that standard would work.

Yes please :)

It would mean only using one corner for a small board though while the editor shows a fullsize (or bigger?)  That could get confusing, but if all keys are shown as a 1x it shouldn't be too bad.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: ctm on Mon, 13 April 2015, 20:56:36
Is there a way to have a dedicated ~ key? i.e. typing ~ without shift.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 13 April 2015, 21:39:17
Is there a way to have a dedicated ~ key? i.e. typing ~ without shift.

I am adding that feature now.  In the new version, you may assign implied modifers to any key.  So you could assign a key to ` with shift, which would give you a single-keystroke ~
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: ctm on Mon, 13 April 2015, 22:14:26
Is there a way to have a dedicated ~ key? i.e. typing ~ without shift.

I am adding that feature now.  In the new version, you may assign implied modifers to any key.  So you could assign a key to ` with shift, which would give you a single-keystroke ~
Awesome! Thank you!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 14 April 2015, 07:02:35
[attachimg=1]

This is the handwire matrix.  It ain't real pretty, but if you're good with the .cfg files, you can actually make it look like any layout you've created.

It uses the same matrix as the Phantom, so if you wire it like the Phantom, it should work.  I think I'll have to make something describing how to handwire a compatible board.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 14 April 2015, 07:09:10
Is there a way to have a dedicated ~ key? i.e. typing ~ without shift.

I am adding that feature now.  In the new version, you may assign implied modifers to any key.  So you could assign a key to ` with shift, which would give you a single-keystroke ~
Awesome! Thank you!

You can see the four new mod selectors above the layer selectors.  That's how you will do it.

This version ran into some snags but I've smoothed them over and I just need to find time to get a few more things in there.  Definitely will release this week.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MAR82 on Tue, 14 April 2015, 07:34:06
(Attachment Link)

This is the handwire matrix.  It ain't real pretty, but if you're good with the .cfg files, you can actually make it look like any layout you've created.

It uses the same matrix as the Phantom, so if you wire it like the Phantom, it should work.  I think I'll have to make something describing how to handwire a compatible board.

Great news!  :thumb:
I'll just wait for the description on how to use it  :p
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 16 April 2015, 22:44:09
New version posted, which I have not tested, so I'm calling it beta.  I've been so busy lately I haven't been able to code much.

The biggest change is the way functions are assigned to keys.  In the old scheme, keys were assigned to scancodes, and mod/Fn scancodes could be assigned special modes.  That wasn't good enough.

The new version allows every key on every layer to be assigned both a scancode and a special function.  [Normal, Toggle, Lockable, Dual Use (Tapkey), and Rapid Fire]

So, you can now make a "%" key by assigning it to '5' with a shift.

I've also added the handwire matrix, who wants to be the first guinea pig?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Fri, 17 April 2015, 18:45:44
This sounds awesome, thanks metaliqaz!

I will redo my JD40 making use of the individual modifier options and I have a dodgy 4x6 numberpad here which I could rewire to your standard to test the custom matrix but it's on an Arduino Micro so I'd have to work out the pins - not awake enough tonight but I'll try and find time tomorrow. 
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MOZ on Sat, 18 April 2015, 05:05:13
Excellent work qaz!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sat, 18 April 2015, 13:03:41
I just mapped the matrix to Arduino Micro pins (see below) and looks like it's good for a 5x16 matrix with two LEDs, but I wonder what will happen when it strobes/scans the onboard TX/RX LEDs?  I guess it would read high and flash the LED really fast but as long as they aren't defined as keys it will work, but I'm no electronics expert so didn't like to test it :))

Code: [Select]
Row 0: B5 9
Row 1: B4 8
Row 2: B3 MI
Row 3: B2 MOSI
Row 4: B1 SCK
Row 5: B0 RXLED(?)

Col  0: D5 TXLED(?)
Col  1: C7 13
Col  2: C6 5
Col  3: D4 4
Col  4: D0 3
Col  5: E6 7
Col  6: F0 A5
Col  7: F1 A4
Col  8: F4 A3
Col  9: F5 A2
Col 10: F6 A1
Col 11: F7 A0
Col 12: D7 6
Col 13: D6 12
Col 14: D1 2
Col 15: D2 0
Col 16: D3 TX

LED0: B6 10
LED1: B7 11
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 18 April 2015, 13:11:27
It depends on how the LEDs are wired, but all rows are configured as inputs with pull-up.  If the RXLED is active-high, then it will potentially consume current.  The TXLED will be activated one way or another as the columns strobe.

Do a lot of people use the Arduino Micro?  It's also probable that the binary wouldn't load on that hardware, if the bootloader isn't similar to Teensy's.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sat, 18 April 2015, 13:20:02
I have no idea who uses them but it was on offer in a local store and I'd read that they work in keyboards so picked one up, it works fine with Soarer's firmware if that says anything about potential compatibility?

Sounds like it's not going to break anything so I'll give it a go tomorrow and let you know :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sun, 19 April 2015, 05:22:54
Completely unrelated to anything please can you update Easy_keymap.sh to the below so you can double click it rather than opening in a terminal?  I kept meaning to mention this but haven't :)

Code: [Select]
#!/bin/sh
python $( cd "$( dirname "$0" )" && pwd )/main.py
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sun, 19 April 2015, 07:52:31
Sorry for the triple post but I just tried to save a custom matrix consisting of 4 keys (0:0, 0:1, 0:2, 0:3) on one layer to test the Arduino, and it made a 0 byte hex file and gave this error:

Error: 'module' object has no attribute 'layers_map'

I'm using the multiplatform version under Linux if that makes any difference.

Edit: in better news I flashed the standard Phantom layout as you say that's what the custom is based on and shorted some pins and got characters so all good.  The TX LED is constantly on but that's a minor annoyance compared to the realisation that the LED takes out one "row" so if I'll have to pretend my pad is sideways in the middle of the main section of a Phantom then everything should work...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 19 April 2015, 11:56:33
Sorry for the triple post but I just tried to save a custom matrix consisting of 4 keys (0:0, 0:1, 0:2, 0:3) on one layer to test the Arduino, and it made a 0 byte hex file and gave this error:

Error: 'module' object has no attribute 'layers_map'

I'm using the multiplatform version under Linux if that makes any difference.

Edit: in better news I flashed the standard Phantom layout as you say that's what the custom is based on and shorted some pins and got characters so all good.  The TX LED is constantly on but that's a minor annoyance compared to the realisation that the LED takes out one "row" so if I'll have to pretend my pad is sideways in the middle of the main section of a Phantom then everything should work...

Oops, another bug!  Thanks for testing it.  I fixed that bug.  I also have already found a few others and I'm fixing those too.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sun, 19 April 2015, 12:01:13
No problem, let me know when there's a new build to test as I'm just finishing up the matrix on another numberpad as I'd glued over the wires and switch backs on the old one and forgot to label anything before disconnecting :-[
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 19 April 2015, 12:07:56
Completely unrelated to anything please can you update Easy_keymap.sh to the below so you can double click it rather than opening in a terminal?  I kept meaning to mention this but haven't :)

Code: [Select]
#!/bin/sh
python $( cd "$( dirname "$0" )" && pwd )/main.py

I never test it on Linux and I really should.  I don't see any reason why that wouldn't work.  I'll change it.  Thanks
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: greath on Mon, 20 April 2015, 06:17:41
Idea you might consider implimenting: LED based on network/hard drive activity.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: JaccoW on Mon, 20 April 2015, 06:59:15
So I built the layout I wanted for the Orion and generated the firmware.

But Flip doesn't load (something about a missing Java virtual machine) and I'm still looking for the key which puts it in bootloader mode.

Any ideas?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 20 April 2015, 07:02:17
I believe it's the key above the backspace.

With flip...  Maybe check or reinstall Java?  I've never seen that error
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: JaccoW on Mon, 20 April 2015, 07:07:38
I believe it's the key above the backspace.

With flip...  Maybe check or reinstall Java?  I've never seen that error
New Windows install. Using Chrome so I never installed Java. XD Checking that now.

As for the Flip key:
Is backspace the flip key on the orion?

Is there a flashing guide anywhere or is it all in korean? I have some korean stuff Im just tired and am lacklustre about working it out :) Apologies if it's in this thread already.

Margo, yes the flip key is backspace for the Orion.

See "Note on Reprogramming" here (https://geekhack.org/index.php?topic=53942.0)

Will be reporting back. ;)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: JaccoW on Mon, 20 April 2015, 07:14:51
Flip now works...

But which device do I load?
(http://i.imgur.com/5O9fPcB.png)
Any hint on how to find the correct one?

Should I check for the ATmega32U4 device that Acanta used for his KMAC?
EDIT: Nope, that gives me an "atlibusbdfu.dll not found" error.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 20 April 2015, 07:23:55
I believe it's the key above the backspace.

With flip...  Maybe check or reinstall Java?  I've never seen that error
New Windows install. Using Chrome so I never installed Java. XD Checking that now.

As for the Flip key:
Is backspace the flip key on the orion?

Is there a flashing guide anywhere or is it all in korean? I have some korean stuff Im just tired and am lacklustre about working it out :) Apologies if it's in this thread already.

Margo, yes the flip key is backspace for the Orion.

See "Note on Reprogramming" here (https://geekhack.org/index.php?topic=53942.0)

Will be reporting back. ;)

Yeah, it's backspace, I just checked.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 20 April 2015, 07:26:46
Flip now works...

But which device do I load?
Show Image
(http://i.imgur.com/5O9fPcB.png)

Any hint on how to find the correct one?

Should I check for the ATmega32U4 device that Acanta used for his KMAC?
EDIT: Nope, that gives me an "atlibusbdfu.dll not found" error.

It's ATmega32U4.  You need to install the DFU driver.  Put it into boot mode, go into device manager, right click the bad device and choose update driver.  Then select find your own driver and go into the Flip install directory to get it.  If possible, please take screenshots and post them, I want to make a HOWTO
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 20 April 2015, 07:27:23
Idea you might consider implimenting: LED based on network/hard drive activity.

That would require a driver on the PC
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 20 April 2015, 07:34:40
New beta posted.  Just bug fixes.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: JaccoW on Mon, 20 April 2015, 08:08:18
Flip now works...

But which device do I load?
Show Image
(http://i.imgur.com/5O9fPcB.png)

Any hint on how to find the correct one?

Should I check for the ATmega32U4 device that Acanta used for his KMAC?
EDIT: Nope, that gives me an "atlibusbdfu.dll not found" error.

It's ATmega32U4.  You need to install the DFU driver.  Put it into boot mode, go into device manager, right click the bad device and choose update driver.  Then select find your own driver and go into the Flip install directory to get it.  If possible, please take screenshots and post them, I want to make a HOWTO
It works! Thanks for the help. :)

Leds aren't working though so I have to try again in the future.

Made a quick Album (http://imgur.com/a/VZ9nN) for the how to. Keep in mind that some of it is in Dutch but I think it should be clear enough. :)

Links used:
- LightSaver opening post (https://geekhack.org/index.php?topic=53942.0)
- HOWTO: Program your KMAC (https://geekhack.org/index.php?topic=49647.0)
- Easy AVR USB Keyboard Firmware and Keymapper (https://geekhack.org/index.php?topic=51252.0)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 20 April 2015, 08:14:02

Made a quick Album (http://imgur.com/a/VZ9nN) for the how to. Keep in mind that some of it is in Dutch but I think it should be clear enough. :)


AWESOME.  You only have to do this once so I've never been able to go back and take screenshots.  Thanks, dude.

As for the LEDs, they work on my Orion, although I haven't tested the newest build.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: JaccoW on Mon, 20 April 2015, 08:26:58

Made a quick Album (http://imgur.com/a/VZ9nN) for the how to. Keep in mind that some of it is in Dutch but I think it should be clear enough. :)


AWESOME.  You only have to do this once so I've never been able to go back and take screenshots.  Thanks, dude.

As for the LEDs, they work on my Orion, although I haven't tested the newest build.
No problem. It's the least I could do. :thumb:

Turns out I forgot to assign a key to change the LEDs. But that was an easy fix after all this. ;)

Having Ctrl on CapsLock feels a whole lot better. <3
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Mon, 20 April 2015, 14:27:07
New beta posted.  Just bug fixes.

New beta, new error :(

Error: list index out of range


I guess the layouts won't be changing so I can try and test doing that?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 20 April 2015, 14:40:09
Do you get that error even when starting from a new layout?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Mon, 20 April 2015, 14:44:27
Yeah, just went with default handwire and added a couple of random keys.  Not going to spend a long time on a layout until it works :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 20 April 2015, 15:14:17
I guess it's time I actually tested the damn thing, eh?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Mon, 20 April 2015, 15:20:32
If you like :))
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 20 April 2015, 17:10:58
I have a new idea. What if the pins were also configurable?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Mon, 20 April 2015, 17:22:16
Not a bad idea, would have been a great one before I wired up your specifications despite them not matching the physical layout at all yesterday :-\
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Mon, 20 April 2015, 17:51:18
metalliqaz, does this version have the fix you included for the issue I found?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 20 April 2015, 20:08:01
metalliqaz, does this version have the fix you included for the issue I found?
I can't remember which that was, but the latest version should include all fixes.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 20 April 2015, 20:47:37
Another day, another bugfix release.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Tue, 21 April 2015, 02:25:19
It works!

Thanks metalliqaz, will do my layout tonight :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vicibz on Tue, 21 April 2015, 11:26:54
Cool! I just gave it a go for my custom keyboard (which I have working with tmk) but could not make it work :(

I think I got it right:
- Changed the pin assignment in cfg/handwire_hardware.cfg. I had to remove a couple of cols and both leds.
- Made the layout in AVR look like my matrix.

Result after flashing: keyboard unresponsive.

Any other custom keyboards around with AVR working?

Thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 21 April 2015, 11:41:22
Did you read the section about diode direction? That could be it.
You're using a Teensy?  If you want me to try troubleshooting, you could send me yourTMK matrix file and I could give it a shot.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vicibz on Tue, 21 April 2015, 11:55:31
Did you read the section about diode direction? That could be it.
You're using a Teensy?  If you want me to try troubleshooting, you could send me yourTMK matrix file and I could give it a shot.

Yes, it's a Teensy 2.0.
I just read about diode direction, and it could be this.
I soldered the diodes exactly like matt30 did: http://static.cubiq.org/uploads/2014/03/VcSDW6r.jpg
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Tue, 21 April 2015, 12:55:01
...
Any other custom keyboards around with AVR working?
...

My custom numberpad works.  It's upside-down, but it works :))
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 21 April 2015, 13:56:47
Thats easily fixed.  Just reverse the row order
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Tue, 21 April 2015, 17:10:18
It's sideways in the editor anyway as the Arduino only has 5 rows and the pad has 6, it's not so bad having the top on the right rather than the left as long as I remember.  Would be easier if there was a way to add a space as there is physically, but everything I try seems to hide 1/4 of a key under the next one.  Is there a way to do it without having an empty row's keys to manipulate?

Gap or not it works and that's the main thing so thanks for all your work :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Photoelectric on Tue, 21 April 2015, 21:14:18
Any chance this firmware works for KMAC Happy?  It's not explicitly listed on the supported list.

Looking at the software, it's probably a no...  I can load an 87-key KMAC layout, but I'm not sure a customized version of that would translate properly to the KMAC Happy firmware.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 21 April 2015, 21:50:30
I can port it to the happy.  The handwire could never work.  KMAC needs a port.   Honestly, though, I wouldn't be surprised if the regular KMAC firmware works.  Those guys like to reuse designs.  Ill look into it
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Photoelectric on Wed, 22 April 2015, 00:24:13
That would be excellent!  Thank you!  I've put your firmware into everything I could so far :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 22 April 2015, 08:35:12
Seriously, try building a KMAC binary and loading it.  I'd like to know how it works.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Photoelectric on Wed, 22 April 2015, 10:12:10
Using an 87-key KMAC layout and ignoring the function layer and such?  I thought normally the function layer would start at column 0 row 0, not the number row (as is the case with KMAC Happy).  I just don't want to mess up the alignment.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 22 April 2015, 11:02:29
Im just curious how close the hardware is.  It will never work completely.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Photoelectric on Wed, 22 April 2015, 11:08:53
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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 22 April 2015, 12:38:02
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!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Photoelectric on Wed, 22 April 2015, 13:37:36
Sure, I'd be glad to get it working.  I'll message you later today or write here.  In the meantime, how should I proceed with creating a test layout?  Do I use your default 87-key KMAC layout within the software or how should I proceed?  I think I have the original KMAC Happy firmware file downloaded (but not tested) from some of Litster's old links.  Thank you.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Thu, 23 April 2015, 17:16:46
I just downloaded on another machine and there's a new version which allows completely custom matrix - very nice!  Seems you're done for a while so here's a feature request - can it have a dynamic number of LED slots too?  On a small board there are plenty of gaps in the matrix wasting pins which could be used for layer indicators :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 23 April 2015, 18:43:18
I just downloaded on another machine and there's a new version which allows completely custom matrix - very nice!  Seems you're done for a while so here's a feature request - can it have a dynamic number of LED slots too?  On a small board there are plenty of gaps in the matrix wasting pins which could be used for layer indicators :)

It can't.  The baseline binary is stuck at 6x17x2
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Hzza on Fri, 24 April 2015, 04:34:07
I was having a play with the new tap keys function and either I'm misunderstanding what it does or it doesn't work...

I'm trying to get it set up so that my up/down/left/right arrows produce pg up/pg down/home/end on tap. I've tried both ways around (up arrow with pg up on tap and pg up with up arrow on tap) and both ways around the tap key doesn't work.

Am I doing something daft or is it the firmware not working? (I downloaded a fresh file from the OP last night I think, I can give you a revision number when I'm back at home, trying to get this working on the Six Shooter).
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 24 April 2015, 05:42:22
If you really dig in to the docs, you will see that tap keys only work on modifiers.  I can't think of a real scenario in which you'd actually use that configuration. Remember that if it was implemented and you tapped that key, you'd get one 'down' press and one 'pgdn'  press.  Dual use keys don't disable the primary use, even when tapped.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Hzza on Fri, 24 April 2015, 05:47:56
Ah ok, it wasn't doing what I thought it was then, thanks for the explanation.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sat, 25 April 2015, 12:23:45
I just downloaded on another machine and there's a new version which allows completely custom matrix - very nice!  Seems you're done for a while so here's a feature request - can it have a dynamic number of LED slots too?  On a small board there are plenty of gaps in the matrix wasting pins which could be used for layer indicators :)

It can't.  The baseline binary is stuck at 6x17x2

If you're bored at any time it might be worth making a smaller version with more LEDs, maybe 6x15?  I know I'd use it :)

Also would it be possible to assign an implied mod to a whole layer at once?  I'm thinking shift and backspace = delete but that would need a layer with all the other keys being their shifted versions.  Not too bad on a JD40 but it would be tedious to do a 60% layout...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 25 April 2015, 12:35:02
You can add Shift to the Fn key.  That will shift the whole layer, unless you are toggling.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sat, 25 April 2015, 12:48:58
Ooh clever!  Thanks :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 26 April 2015, 11:21:53
If you're bored at any time it might be worth making a smaller version with more LEDs, maybe 6x15?  I know I'd use it :)

Forgot to answer this.  Of course it's possible but I'm not sure how far I can go with this.  Everyone seems to have slightly different needs and it's impossible to support them all.  I think I need to collect some data points.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: CPTBadAss on Sun, 26 April 2015, 21:52:46
Just to float this out there: The Pegasus Hoof, which fits into the TKL Filco MJ2, also fits into the Filco Zero.

(http://i.imgur.com/GpPu7G2.jpg)

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 26 April 2015, 22:01:03
Cool. Is the matrix the same?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: CPTBadAss on Sun, 26 April 2015, 22:02:33
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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Hzza on Mon, 27 April 2015, 03:21:11
I'm pretty sure I put my HID liberator in my Zero way back when and it worked OK.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Pitrek on Wed, 29 April 2015, 15:16:45
Can you build .hex file for me? I need firmware for 2-switches keyboard. (Z, X)
There isn't default setup + i can't build it on my own. Thank you!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: greath on Wed, 29 April 2015, 17:01:54
Just to float this out there: The Pegasus Hoof, which fits into the TKL Filco MJ2, also fits into the Filco Zero.

Show Image
(http://i.imgur.com/GpPu7G2.jpg)


... ok how are you putting alps/matias switches on a Filco PCB?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 29 April 2015, 17:16:07
The zero is an alps board.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: JaccoW on Fri, 01 May 2015, 07:47:44
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
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 01 May 2015, 10:25:24
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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: JaccoW on Thu, 07 May 2015, 12:58:43
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.
Finally got around to trying this again. Cool way of doing this. :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Thu, 07 May 2015, 13:21:56
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.)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: GL1TCH3D 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
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: GL1TCH3D 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
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz 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 :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange 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!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: CPTBadAss 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
(http://i.imgur.com/GpPu7G2.jpg)


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 (https://geekhack.org/index.php?topic=61588.msg1439657#msg1439657).
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Photoelectric 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).
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Zukoi 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz 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
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz 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.

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Zukoi 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: FreeChemicals 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi 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.)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 16 May 2015, 08:03:30
I need to know if each is active high or active low.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi 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.)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz 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.

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 16 May 2015, 10:00:04
Tuen them off using the BL_ENABLE key
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Zukoi 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz 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 :(
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Zukoi 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: ramnes 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?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz 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
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi 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.)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Tue, 19 May 2015, 16:43:48
Is there any intention on supporting the newest techkeys card? The one with the LED Matrix?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: CPTBadAss 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII 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...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: CPTBadAss 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 :).
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII 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)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Tue, 19 May 2015, 19:50:59
What would you want it to do?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: CPTBadAss 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII 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!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange 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:
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz 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  (http://i.imgur.com/5ji3s3w.png)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?

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi 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:
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi 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?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange 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. :)
...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz 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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sat, 23 May 2015, 03:24:48
If you're going big why not allow a whole Teensy 2.0++ so someone can handwire thier battleship board - 46 pins! ;)

Seriously though, that sounds like plenty and I'm intrigued by Zukoi's request but I'm in Linux so can't test - any chance of a multiplatform build or is it too unstable? :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 23 May 2015, 07:21:55
2.0++ uses a different AVR.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Sat, 23 May 2015, 10:48:40
Very nice!

Here is a comparison between a HANDWIRE JD45 and an actual JD45 layout (new version at top.)

I'll do some firmware building and testing later this weekend.

Thanks very much indeed!

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

p.s.  This also shows the discerning reader my "extra column" cheat.

[attach=1]

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.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sat, 23 May 2015, 13:44:49
2.0++ uses a different AVR.
Other firmwares just work, have you tried yours and found it not to?  If not I'll give it a go, as long as I can find the Soarer's currently on my Ducky (it has a random matrix so no EasyAVR option!)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Sun, 24 May 2015, 12:00:05
Did you give the Techkeys card some thought?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Mon, 25 May 2015, 18:29:21
Actually, on another thought, I know you said that the Gon Nerd60 isn't supported because of the bootloader on the AVR itself...but let's say I replaced the chip (which I did...) is it relatively easy to utilize your programmer for it?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 25 May 2015, 18:56:07
Actually, on another thought, I know you said that the Gon Nerd60 isn't supported because of the bootloader on the AVR itself...but let's say I replaced the chip (which I did...) is it relatively easy to utilize your programmer for it?

Replaced it with what?  If it's a USB AVR (ATmegaXXUX or AT90USBXXX) then it will work, yes.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 25 May 2015, 18:58:47
Did you give the Techkeys card some thought?

It's going to be tough to get to this, to be honest, but I'm willing to work with someone if they want to provide code.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Mon, 25 May 2015, 19:00:03
I tested the Teensy 2.0++ and you're right - it didn't work.  Not sure how other firmwares do with no modification but it is what it is.

Actually, on another thought, I know you said that the Gon Nerd60 isn't supported because of the bootloader on the AVR itself...but let's say I replaced the chip (which I did...) is it relatively easy to utilize your programmer for it?

If you know the matrix layout all you need to do is pretend it's a handwire and follow the instructions for that.  From helping someone repair one not long ago it was easy enough to work out the bits we could find pics for, but if half of it is hiding under a plate you might need to check continuity between switches/far side of diodes to map it out :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 25 May 2015, 19:05:17
I tested the Teensy 2.0++ and you're right - it didn't work.  Not sure how other firmwares do with no modification but it is what it is.

There are a few considerations. (location of bootloader, schedule timing, available RAM, I/O ports, etc)  However if someone puts together a board with one of those, I'll be happy to make a new binary.  Right now I'm concentrating on upgrading the LED support.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Mon, 25 May 2015, 19:10:32
I tested the Teensy 2.0++ and you're right - it didn't work.  Not sure how other firmwares do with no modification but it is what it is.

There are a few considerations.  However if someone puts together a board with one of those, I'll be happy to make a new binary.  Right now I'm concentrating on upgrading the LED support.

It's a crazily big controller for a handwired project but I guess someone could make a fullsize board and stick one on the bottom of it.  LEDs sound much more fun, I must order some! :))
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Mon, 25 May 2015, 19:56:20
Did you give the Techkeys card some thought?

It's going to be tough to get to this, to be honest, but I'm willing to work with someone if they want to provide code.

To be honest...this isn't even that big of a deal, it'd just be cool to get this little assed thing to be able to do 15 different things, haha. The code for the project is here (https://github.com/komar007/ravello_firmware)...I'm probably one of the few people aside from CPTBadAss that might find this useful...I think...maybe not. Either way, if you need the card...let me know I could send it to you...

Actually, on another thought, I know you said that the Gon Nerd60 isn't supported because of the bootloader on the AVR itself...but let's say I replaced the chip (which I did...) is it relatively easy to utilize your programmer for it?

Replaced it with what?  If it's a USB AVR (ATmegaXXUX or AT90USBXXX) then it will work, yes.

Yeah, the one on my Nerd60 is a Atmega32u4-AU ....I figured since Gon doesn't provide his bootloader...I'd save it by just swapping out the chip. What info would you need for supporting this board? or can I just use the GH60 setting?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 25 May 2015, 21:07:15
Yeah, the one on my Nerd60 is a Atmega32u4-AU ....I figured since Gon doesn't provide his bootloader...I'd save it by just swapping out the chip. What info would you need for supporting this board? or can I just use the GH60 setting?

The configuration of the hardware.  Basically, which I/O pins correspond to rows/cols/leds?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Mon, 25 May 2015, 21:31:00
Yeah, the one on my Nerd60 is a Atmega32u4-AU ....I figured since Gon doesn't provide his bootloader...I'd save it by just swapping out the chip. What info would you need for supporting this board? or can I just use the GH60 setting?

The configuration of the hardware.  Basically, which I/O pins correspond to rows/cols/leds?

Fair enough, I'll map it out...Or take some high res pics for some to help, I'm just starting to learn about matrices and AVRs...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Tue, 26 May 2015, 11:59:36
Yeah, the one on my Nerd60 is a Atmega32u4-AU ....I figured since Gon doesn't provide his bootloader...I'd save it by just swapping out the chip. What info would you need for supporting this board? or can I just use the GH60 setting?

The configuration of the hardware.  Basically, which I/O pins correspond to rows/cols/leds?

I'll need to use the ++ for the GH-122/152 just to get a big enough matrix.

 - Ron | samwisekoi
Auto-typed by my JD45 keyboard.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: VinnyCordeiro on Tue, 26 May 2015, 12:13:53
Yeah, the one on my Nerd60 is a Atmega32u4-AU ....I figured since Gon doesn't provide his bootloader...I'd save it by just swapping out the chip. What info would you need for supporting this board? or can I just use the GH60 setting?

The configuration of the hardware.  Basically, which I/O pins correspond to rows/cols/leds?

I'll need to use the ++ for the GH-122/152 just to get a big enough matrix.

 - Ron | samwisekoi
Auto-typed by my JD45 keyboard.
Or you can use the ATmega32U4/Teensy 2 with some demultiplexers, as seen on Project Zeta post (https://geekhack.org/index.php?topic=71161.0), and clever firmware coding. The 74HC154 in the example even have a through hole version, for those who are afraid of SMD soldering.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Wed, 27 May 2015, 03:02:58
I'll need to use the ++ for the GH-122/152 just to get a big enough matrix.

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

:eek: You're going to handwire that beast?!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Wed, 27 May 2015, 08:50:06
I'll need to use the ++ for the GH-122/152 just to get a big enough matrix.

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

:eek: You're going to handwire that beast?!

No, no.  But I will need the pin count provided by a Teesny 2.0 ++.

 - Ron | samwisekoi
Auto-typed by my JD45 keyboard.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 27 May 2015, 09:24:42
So the Teensy2.0++ uses the much larger AT90USB128 microcontroller, which is binary compatible with the Teensy2.0's ATmega32U4, however it isn't practical to make one build that runs on both because the much larger matrix means more memory usage (both RAM and ROM) and scan time, and it's more than the smaller AVR can handle.  Also the bootloader is in a different location and the list of available I/O pins is different.  Therefore, I'll probably just create a new target, handwire_big, to handle that.  I will probably will wait until I have a new project going or Sam has something built because it is probably going to require a bit of testing.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Wed, 27 May 2015, 10:25:18
So the Teensy2.0++ uses the much larger AT90USB128 microcontroller, which is binary compatible with the Teensy2.0's ATmega32U4, however it isn't practical to make one build that runs on both because the much larger matrix means more memory usage (both RAM and ROM) and scan time, and it's more than the smaller AVR can handle.  Also the bootloader is in a different location and the list of available I/O pins is different.  Therefore, I'll probably just create a new target, handwire_big, to handle that.  I will probably will wait until I have a new project going or Sam has something built because it is probably going to require a bit of testing.

I'd say wait.  The other thing the 2.0++ provides is MUCH more memory, which would be awesome for more RAM macros.  And the potential for LED control is really good with the bigger processor.  There is even a small display that would look awesome where the Model M indicator LED panel normally goes.

But yes, let's wait until there is something that NEEDS all of those pins!

Meanwhile, perhaps I'll make one of my teenagers learn Python over the summer.  <evil grin>

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

p.s.  Trivial request:  Could you please put the release date into the about box?  It currently says something like "Version 12", but we all (or at least me all) think of the various versions as 20150522, etc.  Thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: vvp on Wed, 27 May 2015, 13:29:34
Or you can use the ATmega32U4/Teensy 2 with some demultiplexers, as seen on Project Zeta post (https://geekhack.org/index.php?topic=71161.0), and clever firmware coding. The 74HC154 in the example even have a through hole version, for those who are afraid of SMD soldering.
74HC164 serialIn/parallelOut 8 bit shift register is cheaper (at least just now on farnell) and requires only 2 pins instead of 3 and you can scale it to more bits without a need for more pins.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: VinnyCordeiro on Wed, 27 May 2015, 13:54:37
Or you can use the ATmega32U4/Teensy 2 with some demultiplexers, as seen on Project Zeta post (https://geekhack.org/index.php?topic=71161.0), and clever firmware coding. The 74HC154 in the example even have a through hole version, for those who are afraid of SMD soldering.
74HC164 serialIn/parallelOut 8 bit shift register is cheaper (at least just now on farnell) and requires only 2 pins instead of 3 and you can scale it to more bits without a need for more pins.
That'll add too much complexity to the firmware, and timing problems would certainly happen. Using a demux may be not so efficient in terms of pin usage, but it is fast and firmware needs just a small tweak. I already saw an example of this in tmk_keyboard.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: meow a cat on Thu, 28 May 2015, 08:57:10
Does anyone know if  it's possible to do macro functions like these using EasyAVR?

LSHIFT & RSHIFT pressed simultaneously = CAPS LOCK

LSHIFT & SCROLL LOCK pressed simultaneously = Toggle FN layer, press NUM LOCK (sort of like on an SSK?)

Also, quick feature request for Metalliqaz. I don't know if it's possible or not, but I'd love to have a system power scancode, so I could do something like FN + ESC = shut down my PC.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Thu, 28 May 2015, 09:11:55
The first you can do with Auto Hot Key (Win) or Keyboard Shortcuts (Linux).  The second you can't do at present unless you use the tap mode, which I think is a problem for normal Shift use.

The current release lets you use modifiers IN the key assignments, but not to CONTROL the key assignments.

(But it would be very handy if it did both!)

HID_KEYBOARD_SC_POWER is available already.  You might also have to enable it in BIOS; some motherboards ignore it by default.

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

Does anyone know if  it's possible to do macro functions like these using EasyAVR?

LSHIFT & RSHIFT pressed simultaneously = CAPS LOCK

LSHIFT & SCROLL LOCK pressed simultaneously = Toggle FN layer, press NUM LOCK (sort of like on an SSK?)

Also, quick feature request for Metalliqaz. I don't know if it's possible or not, but I'd love to have a system power scancode, so I could do something like FN + ESC = shut down my PC.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 28 May 2015, 09:40:35
Does anyone know if  it's possible to do macro functions like these using EasyAVR?

LSHIFT & RSHIFT pressed simultaneously = CAPS LOCK

LSHIFT & SCROLL LOCK pressed simultaneously = Toggle FN layer, press NUM LOCK (sort of like on an SSK?)

These two mappings are (mostly) technically possible to implement right now with the current scheme...
* Make your Default layer and your Fn layer as you wish
* Copy Default to Layer 2
* on Default, assign FN2 to the left Shift key, and check the "with mod: shift" box
* on Layer 2, assign Caps Lock to the right Shift key
* on Layer 2, assign FN to the scroll lock key as a Toggle (no way to do numlock there)

So this is close, but I know it's not really what you're looking for.  The problem is, how could your mappings be implemented in a general-purpose way?  I need to be able to capture the mappings in the GUI and implement them in the firmware in a way that's not specific to a single user.  In the past, I've mentioned scope when faced with issues like this. If you need to do complicated programming that can't be done with layers, dual-use keys, implied mods, and macros, then you may have graduated to TMK, because this is supposed to be "Easy".

Now, having said that, if someone can think of a straightforward way to capture a mapping like "LSHIFT & SCROLL LOCK pressed simultaneously = Toggle FN layer, press NUM LOCK", then I will implement it.  However I can't think of one.

Also, quick feature request for Metalliqaz. I don't know if it's possible or not, but I'd love to have a system power scancode, so I could do something like FN + ESC = shut down my PC.

I added those codes when I implemented media keys, and then disabled them for some reason.  I can't remember why.  I must have had trouble getting them to work.  The the HID_KEYBOARD_SC_POWER key is only used for Macs, I believe.  I can look into it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 28 May 2015, 10:14:39
Perhaps the answer is better macros.  If a macro could be created that manipulated layers, then a lot more functionality could be unlocked.  Perhaps a \LAYER(2) to toggle a layer.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Muffin860 on Thu, 28 May 2015, 10:35:12
Could this be used to make a leopold keypad behave like a real keypad?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 28 May 2015, 10:37:28
Could this be used to make a leopold keypad behave like a real keypad?

Sorry, no.  This firmware runs on Atmel's USB AVR parts.  The Leopold does not use an AVR controller.  It's not programmable at all, as far as I know.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Muffin860 on Thu, 28 May 2015, 10:45:37
Could this be used to make a leopold keypad behave like a real keypad?

Sorry, no.  This firmware runs on Atmel's USB AVR parts.  The Leopold does not use an AVR controller.  It's not programmable at all, as far as I know.
Shucks. Thanks for the quick response. I have tried HID macros, and it kinda works, but it is unreliable, and luamacros confuses the hell out of me. I really am hoping to find an easy way to fix this damn thing without putting a teensy in it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Thu, 28 May 2015, 10:53:26
Perhaps the answer is better macros.  If a macro could be created that manipulated layers, then a lot more functionality could be unlocked.  Perhaps a \LAYER(2) to toggle a layer.

When I first saw the UI update that added the "With mods:" row, I thought "Ah ha!" he's added modifiers to CONTROL keypresses.  And that is what I (personally) think you should do in this instance.

Using the existing UI, make "(1,1) with_mods(Shift_L)" be another mapping on the same layer.  We can already do M1=\CTRLcv to make a "copy then paste" key.   We cannot do a LSHIFT + RSHIFT = NUMLOCK string.

More on this thought when I don't have to rush a child to school.

 - Ron | samwisekoi
Auto-typed by my JD45 keyboard.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: meow a cat on Thu, 28 May 2015, 12:05:26
Does anyone know if  it's possible to do macro functions like these using EasyAVR?

LSHIFT & RSHIFT pressed simultaneously = CAPS LOCK

LSHIFT & SCROLL LOCK pressed simultaneously = Toggle FN layer, press NUM LOCK (sort of like on an SSK?)

These two mappings are (mostly) technically possible to implement right now with the current scheme...
* Make your Default layer and your Fn layer as you wish
* Copy Default to Layer 2
* on Default, assign FN2 to the left Shift key, and check the "with mod: shift" box
* on Layer 2, assign Caps Lock to the right Shift key
* on Layer 2, assign FN to the scroll lock key as a Toggle (no way to do numlock there)

So this is close, but I know it's not really what you're looking for.  The problem is, how could your mappings be implemented in a general-purpose way?  I need to be able to capture the mappings in the GUI and implement them in the firmware in a way that's not specific to a single user.  In the past, I've mentioned scope when faced with issues like this. If you need to do complicated programming that can't be done with layers, dual-use keys, implied mods, and macros, then you may have graduated to TMK, because this is supposed to be "Easy".

Now, having said that, if someone can think of a straightforward way to capture a mapping like "LSHIFT & SCROLL LOCK pressed simultaneously = Toggle FN layer, press NUM LOCK", then I will implement it.  However I can't think of one.

Also, quick feature request for Metalliqaz. I don't know if it's possible or not, but I'd love to have a system power scancode, so I could do something like FN + ESC = shut down my PC.

I added those codes when I implemented media keys, and then disabled them for some reason.  I can't remember why.  I must have had trouble getting them to work.  The the HID_KEYBOARD_SC_POWER key is only used for Macs, I believe.  I can look into it.

Your workaround for the double shift macro could work for me, I will try it out.

I understand what you mean when you talk about scope; I just really enjoy using your firmware, so I'd prefer to stick with it if I can.

I came up with those mappings from using Soarers. I'd love to see EasyAVR have similar capabilities for macros.

Of course, I could use Soarers instead, but then I lose the features of EasyAVR that I love. Tap keys are great!

I still haven't figured out how to do anything with TMK yet. It's all over my head so far.  :))

Thanks for looking into the power key for me, that would be awesome!

Perhaps the answer is better macros.  If a macro could be created that manipulated layers, then a lot more functionality could be unlocked.  Perhaps a \LAYER(2) to toggle a layer.

When I first saw the UI update that added the "With mods:" row, I thought "Ah ha!" he's added modifiers to CONTROL keypresses.  And that is what I (personally) think you should do in this instance.

Using the existing UI, make "(1,1) with_mods(Shift_L)" be another mapping on the same layer.  We can already do M1=\CTRLcv to make a "copy then paste" key.   We cannot do a LSHIFT + RSHIFT = NUMLOCK string.

More on this thought when I don't have to rush a child to school.

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

This looks like exactly what I am looking for. We could get even more functionality out of a single layer without getting in the way of other keys on the layer.

I think it would add a lot of capability to EasyAVR if we had the ability to do macros in this way.

Thank you Metalliqaz, and Samwise, for your responses!  :thumb:

P.S. I love the new hint macro, super useful! Especially useful on my JD40.  ;D
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Thu, 28 May 2015, 14:33:50
Perhaps the answer is better macros.  If a macro could be created that manipulated layers, then a lot more functionality could be unlocked.  Perhaps a \LAYER(2) to toggle a layer.

When I first saw the UI update that added the "With mods:" row, I thought "Ah ha!" he's added modifiers to CONTROL keypresses.  And that is what I (personally) think you should do in this instance.

Using the existing UI, make "(1,1) with_mods(Shift_L)" be another mapping on the same layer.  We can already do M1=\CTRLcv to make a "copy then paste" key.   We cannot do a LSHIFT + RSHIFT = NUMLOCK string.

More on this thought when I don't have to rush a child to school.

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

I'm not following.  What are CONTROL keypresses and how are they different from regular keypresses?  Every key on a single layer gets one mapping.  There is not enough memory to store data of arbitrary length at every location.  I also don't understand what "(1,1) with_mods(Shift_L)" means.

Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Thu, 28 May 2015, 18:11:01
More words now -- this morning I was literally getting up from my desk to zoom a child to school.

What I am about to describe might not be practical, do-able, a good idea, or something you want to even consider thinking about the possibility of imagining doing.  This is an expanded definition only. Please excuse the pedantry; I am trying to be specific, not patronizing.  I may fail in that goal.  (Sorry.)

--

The context here is a SINGLE LAYER within Easy Keymap.  For purposes of this description I will use a 60% keyboard like the GH60.  The GH60 has five rows (0-4) and fifteen columns (0-14).  The keys in the GH60 matrix can be described using layout coordinates of (row,column) so the upper left key (Escape or Tilde) is (0,0) and the Space bar is something like (4,5).  For the purposes of pseudo-code, I will create an imaginary function called KEYMAP() that takes three arguments, row, column, and scancode assignment.

So this is how to make that upper-left key be escape:

KEYMAP(0,0) == HID_KEYBOARD_SC_ESCAPE


The latest versions of Easy Keymap extend this by adding modifiers to the assignment as shown here:

KEYMAP(0,0) ==  HID_KEYBOARD_SC_LEFT_SHIFT + HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE


I am proposing the modifiers be moved to the other side of the assignment operator as shown here.  The first line shows what an unmodified keypress delivers.  The second line, which I will call "IFMOD" shows what is assigned to KEYMAP(3,0) IFMOD (RSHIFT) is active.


KEYMAP(3,0) ==  HID_KEYBOARD_SC_LEFT_SHIFT                         # Unchanged from current
KEYMAP(3,0,RSHIFT) ==  HID_KEYBOARD_SC_NUM_LOCK                    # Additional argument added
     

That is the pseudo-code for what I was describing this morning.  Even if this is a bad idea, is that description clearer?

Not knowing the code or internal architecture of Easy Keymap, I can only speculate about implementation paths.  Looking at generated source, I don't see where you are storing the current "With mods:" data.  (Perhaps they don't make it to generated source.)  The proposed "IFMOD" could be implemented as state bits, while loops, fixed function layers, or multiple assignments to a single position.

As I said, it might not be practical, or even a good idea.  But that was what I meant.

Thanks for considering!  (And jeez, for freaking everything else your code has enabled!)

Best,

 - Ron | samwisekoi
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Thu, 28 May 2015, 19:25:34
Yeah, the one on my Nerd60 is a Atmega32u4-AU ....I figured since Gon doesn't provide his bootloader...I'd save it by just swapping out the chip. What info would you need for supporting this board? or can I just use the GH60 setting?

The configuration of the hardware.  Basically, which I/O pins correspond to rows/cols/leds?

PE6 Col 0
PB0 Col 1
PB1 Col 2
PB2 Col 3
PB3 Col 4
PF0 Col 5
PD0 Col 6
PD5 Col 7

PB4 Row 0
PE2 Row 1
PF4 Row 2
PF7 Row 3
PF1 Row 4
PF6 Row 5
PC6 Row 6
PF5 Row 7
PD7 Row 8
PC7 Row 9

PB7 In-switch
PB6 "Side LEDs"
PB5 Caps Lock
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 29 May 2015, 11:31:07
The context here is a SINGLE LAYER within Easy Keymap.  For purposes of this description I will use a 60% keyboard like the GH60.  The GH60 has five rows (0-4) and fifteen columns (0-14).  The keys in the GH60 matrix can be described using layout coordinates of (row,column) so the upper left key (Escape or Tilde) is (0,0) and the Space bar is something like (4,5).  For the purposes of pseudo-code, I will create an imaginary function called KEYMAP() that takes three arguments, row, column, and scancode assignment.

So this is how to make that upper-left key be escape:

KEYMAP(0,0) == HID_KEYBOARD_SC_ESCAPE


The latest versions of Easy Keymap extend this by adding modifiers to the assignment as shown here:

KEYMAP(0,0) ==  HID_KEYBOARD_SC_LEFT_SHIFT + HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE


I am proposing the modifiers be moved to the other side of the assignment operator as shown here.  The first line shows what an unmodified keypress delivers.  The second line, which I will call "IFMOD" shows what is assigned to KEYMAP(3,0) IFMOD (RSHIFT) is active.


KEYMAP(3,0) ==  HID_KEYBOARD_SC_LEFT_SHIFT                         # Unchanged from current
KEYMAP(3,0,RSHIFT) ==  HID_KEYBOARD_SC_NUM_LOCK                    # Additional argument added
     

Here's how it currently works (simplified):

The mapping function takes three arguments, and returns four things

KEYMAP(row, col, layer) -> (scancode, modifiers, mode, tapkey)

Supplying those four results takes 3 bytes per matrix location, and is maxing out memory usage

So consider I mapped Fn+Del to be the same as CTRL+ALT+DEL.  It would look like this:

KEYMAP(2, 14, 0) -> (HID_KEYBOARD_SC_DELETE, 0, 'normal', 0)
KEYMAP(2, 14, 1) -> (HID_KEYBOARD_SC_DELETE, (Ctrl|Alt), 'normal', 0)

Or if I mapped Fn+Esc to be my flip key, it would look like this:

KEYMAP(0, 0, 0) -> (HID_KEYBOARD_SC_ESCAPE, 0, 'normal', 0)
KEYMAP(0, 0, 1) -> (SCANCODE_BOOT, 0, 'normal', 0)

Or if I mapped a SpaceFn layout, I might have something like this:

KEYMAP(5, 6, 0) -> (SCANCODE_FN, 0, 'tapkey', HID_KEYBOARD_SC_SPACE)

Where am I going with this?

When you look at it in this context, I think what you're actually proposing is a shift layer.  What I'm saying is if you just rename "shift layer" to "Layer 3", you've already got it.

Actually I haven't even finished reading your post yet, so I could be missing important stuff.  I'm busy lately, but I wanted to respond.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: samwisekoi on Fri, 29 May 2015, 14:46:24
When you look at it in this context, I think what you're actually proposing is a shift layer.  What I'm saying is if you just rename "shift layer" to "Layer 3", you've already got it.

@metalliqaz,

Thanks for the technical details.  I tried to sort out how to implement a shift/function layer, and I think it is possible, but ugly.

Assume that we are trying to make LSHIFT + RSHIFT -> NUM_LOCK.

KEYMAP(3,0,0) -> SCANCODE_FN5;
KEYMAP(3,13,5) -> HID_KEYBOARD_SC_NUM_LOCK

That works, hooray!

But wait.  For every other key, LSHIFT should be passed through so the OS can use it as a modifier.  But we can't do that because KEYMAP(3,0,0) -> SCANCODE_FN5;

So that means that on Layer 5 we have to do...

KEYMAP(0,0,5) -> SC_GRAVE_ACCENT_AND_TILDE (SHIFT);
KEYMAP(0,1,5) -> SC_1_AND_EXCLAMATION (SHIFT);
KEYMAP(0,2,5) -> SC_2_AND_AT (SHIFT);
...
KEYMAP(2,1,5) -> SC_A (SHIFT);
KEYMAP(2,2,5) -> SC_S (SHIFT);

And so on for the whole keyboard.

The UX is easy.  Go to Layer 0 (Default), Edit:Copy Layer.  Go to Layer 5, Edit: Paste Layer.  One by one, touch each key and check "With mods: [  ] Shift".

When you are done with that, you will have a layer that acts exactly like the default layer plus shift EXCEPT for LSHIFT + RSHIFT, which will be NUMLOCK.

I agree, that would accomplish the task.  Thanks!

@meow a cat, there is your answer.

 - Ron | samwisekoi

p.s.  It occurs to me that the same method could be (painfully) used to turn CAPS_LOCK into a proper SHIFT_LOCK that included shifting the number row.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Mon, 01 June 2015, 11:07:41
I edited this post like 4 times already...

First, I've said it before and I'll say it again, I absolutely LOVE this firmware.

Second, on a Frosty Flake, you can't turn the Insert/Home/PU cluster or the arrow keys into tap keys. Well, you can, but it doesn't work...not sure if you're supposed to be able to, just thought I'd let you know in case that's what is meant to happen.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Mon, 01 June 2015, 16:53:37
@samwisekoi - can't you just tick "with mods: shift" on the FN5 (left shift) key, copy the current layer to layer 5 and then change "right shift" to num lock?  I can't help thinking I'm missing something as it sounds too easy...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Mon, 01 June 2015, 20:29:13
First, I've said it before and I'll say it again, I absolutely LOVE this firmware.

Thanks dude, glad you like it

Second, on a Frosty Flake, you can't turn the Insert/Home/PU cluster or the arrow keys into tap keys. Well, you can, but it doesn't work...not sure if you're supposed to be able to, just thought I'd let you know in case that's what is meant to happen.

Tap keys (or dual use keys) only work on Fn and modifier keys.  The reason has to do with the nature of dual use keys.  Since modifiers don't do anything on their own, they can have two mappings.  If the user quickly presses the modifier and nothing else, then it would normally not have done nothing useful, and it can be assumed that they want to use the tap key instead.  On the contrary, it is perfectly normal for a user to tap a normal key.  In fact, that's the usual.  So if you changed it up so you could apply a tapkey to Insert and tapped it, you'd get Insert on the downstroke and the tapkey on the upstroke.  It wouldn't make sense.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Mon, 01 June 2015, 20:57:36
On the contrary, it is perfectly normal for a user to tap a normal key.  In fact, that's the usual.  So if you changed it up so you could apply a tapkey to Insert and tapped it, you'd get Insert on the downstroke and the tapkey on the upstroke.  It wouldn't make sense.

You make a very good point, I didn't even think of it that way, see I'm still adjusting to a TKL...coming from a full sized KB and I'm so used to tapping enter on the numpad with my thumb while holding my mouse... I was going to change the -> to tap as enter...but reading your response makes me realize that I tap the **** out of the arrow key at times....so yeah. Good call.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Jahiliyyah on Fri, 05 June 2015, 17:10:48
I would kill if I could remap the multimedia keys on my razer tarantula. The firmware is woefully outdated, and I'm not even sure what each key is mapped as.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: MAR82 on Sun, 07 June 2015, 06:29:57
I would kill if I could remap the multimedia keys on my razer tarantula. The firmware is woefully outdated, and I'm not even sure what each key is mapped as.

You should look into software like AutoHotkey, since this tool is not made to do what you want.

With AHK you can map any key to any other key, and make macros and lots of other cool things
This tool is made for programming the ATMEGA32U4 micro controller
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: _nowai on Sun, 07 June 2015, 09:53:40
Hi, I need some advice with a handwired keyboard and this firmware.
I'm coming from TMK and everything worked great so far. However when I tried this firmware, I adjusted the handwire.cfg and handwire_hardware.cfg, made a layout, built and flashed the hex file and I just couldn't get any output at all, even with the debug firmware. After some troubleshooting I figured the diodes must point in the wrong direction. In this case it's not a big problem, because it's only a 5x4 numpad and I can easily swap rows and colums of the pinout (layout is mirrored and turned by 90 degree though). But I own a Planck as well and I'd like to make it work with Easy AVR. Since the Planck has 12 columns I can't just make them rows.

Is there any other way to deal with this?

Edit: here's a picture of the wiring http://imgur.com/t6IvRc7
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: Muffin860 on Sun, 07 June 2015, 22:00:15
Hi, I need some advice with a handwired keyboard and this firmware.
I'm coming from TMK and everything worked great so far. However when I tried this firmware, I adjusted the handwire.cfg and handwire_hardware.cfg, made a layout, built and flashed the hex file and I just couldn't get any output at all, even with the debug firmware. After some troubleshooting I figured the diodes must point in the wrong direction. In this case it's not a big problem, because it's only a 5x4 numpad and I can easily swap rows and colums of the pinout (layout is mirrored and turned by 90 degree though). But I own a Planck as well and I'd like to make it work with Easy AVR. Since the Planck has 12 columns I can't just make them rows.

Is there any other way to deal with this?

Edit: here's a picture of the wiring http://imgur.com/t6IvRc7

You are correct, your diodes are exactly backwards.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 07 June 2015, 22:36:27
Hi, I need some advice with a handwired keyboard and this firmware.
I'm coming from TMK and everything worked great so far. However when I tried this firmware, I adjusted the handwire.cfg and handwire_hardware.cfg, made a layout, built and flashed the hex file and I just couldn't get any output at all, even with the debug firmware. After some troubleshooting I figured the diodes must point in the wrong direction. In this case it's not a big problem, because it's only a 5x4 numpad and I can easily swap rows and colums of the pinout (layout is mirrored and turned by 90 degree though). But I own a Planck as well and I'd like to make it work with Easy AVR. Since the Planck has 12 columns I can't just make them rows.

Is there any other way to deal with this?

Edit: here's a picture of the wiring http://imgur.com/t6IvRc7

I'm working on it.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: _nowai on Mon, 08 June 2015, 03:28:40
You are correct, your diodes are exactly backwards.
Dang, this is how most of the handwired Plancks are done.

I'm working on it.
Thanks, I really appreciate that! :thumb:
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: dougp on Wed, 10 June 2015, 08:44:09
Any chance we can see the v60 added? 
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Wed, 10 June 2015, 08:56:01
Any chance we can see the v60 added?

It doesn't have the right controller. I'm pretty sure it doesn't.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: dougp on Wed, 10 June 2015, 09:09:21
Any chance we can see the v60 added?

It doesn't have the right controller. I'm pretty sure it doesn't.

I haven't been able to find much on that topic, so that's why I was curious.  I'd love to be able to customize the Fn layer on my v60.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: sethk_ on Wed, 10 June 2015, 09:11:36
What about the Leeku PCBs, it has a little silkscreen and output that says "AVR-ISP-6", and I was told that they can be programmed through the USB. Thanks!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 10 June 2015, 09:32:04
Depends on the specific microcontroller part. Got to find that out.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: sethk_ on Wed, 10 June 2015, 09:45:40
Depends on the specific microcontroller part. Got to find that out.
ATMEGA32A-A
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Wed, 10 June 2015, 09:48:59
Unfortunately that's a no-go
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: sethk_ on Wed, 10 June 2015, 12:29:15
Unfortunately that's a no-go
Okay, thank you!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: henz on Fri, 12 June 2015, 13:12:13
I have a A87 ps2avr keyboard which is in a working condition which i want to change layout on. Ive tried browsing a couple of threads, but have not come to any conclusion. Isnt there a easy way to change layouts?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 12 June 2015, 13:14:42
I have a A87 ps2avr keyboard which is in a working condition which i want to change layout on. Ive tried browsing a couple of threads, but have not come to any conclusion. Isnt there a easy way to change layouts?

Not with this firmware.  Those Koreans are still married to the outdated PS/2 protocol, so they don't like to use the USB AVR parts.  My firmware is built for the USB AVR parts.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: henz on Fri, 12 June 2015, 13:16:58
I have a A87 ps2avr keyboard which is in a working condition which i want to change layout on. Ive tried browsing a couple of threads, but have not come to any conclusion. Isnt there a easy way to change layouts?

Not with this firmware.  Those Koreans are still married to the outdated PS/2 protocol, so they don't like to use the USB AVR parts.  My firmware is built for the USB AVR parts.

Any chance you can point me in the right direction?(if there is one :))
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: FreeChemicals on Sun, 14 June 2015, 18:21:01
What would you require to add Duck Viper support? It uses an ATMega32u4 and a 74HC237D (http://www.nxp.com/documents/data_sheet/74HC237.pdf).
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sun, 14 June 2015, 20:36:34
Basically I just need the hardware info.  Is there a matrix description anywhere?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: emguy on Wed, 17 June 2015, 20:25:57
How difficult it is to add support to the GH60 Satan PCB ? https://geekhack.org/index.php?topic=66624.msg1712129#msg1712129 (https://geekhack.org/index.php?topic=66624.msg1712129#msg1712129)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: lebao on Wed, 17 June 2015, 23:23:28
I have a A87 ps2avr keyboard which is in a working condition which i want to change layout on. Ive tried browsing a couple of threads, but have not come to any conclusion. Isnt there a easy way to change layouts?

Not with this firmware.  Those Koreans are still married to the outdated PS/2 protocol, so they don't like to use the USB AVR parts.  My firmware is built for the USB AVR parts.

Any chance you can point me in the right direction?(if there is one :))

FYI (http://"https://geekhack.org/index.php?topic=51252.0")
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Thu, 18 June 2015, 02:57:03
How difficult it is to add support to the GH60 Satan PCB ? https://geekhack.org/index.php?topic=66624.msg1712129#msg1712129 (https://geekhack.org/index.php?topic=66624.msg1712129#msg1712129)

Looks like a 32u4 so it will work, but you need to find/work out the key matrix (which pins on the controller go to which rows/columns of switches) and find some way of putting it into bootloader mode :)
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: emguy on Thu, 18 June 2015, 19:03:50
How difficult it is to add support to the GH60 Satan PCB ? https://geekhack.org/index.php?topic=66624.msg1712129#msg1712129 (https://geekhack.org/index.php?topic=66624.msg1712129#msg1712129)

Looks like a 32u4 so it will work, but you need to find/work out the key matrix (which pins on the controller go to which rows/columns of switches) and find some way of putting it into bootloader mode :)

This pcb (aka. GH60_REV_CHN) has been widely used in China. I bought one last week and discovered that the procedure of customization and reflashing is EXTREMELY tedious. If you can make your program work with this pcb, LOTS of Chinese people, as far as I know, will benefit from it.

The source of its firmware is modified from that for the GH60. You will find that there are only little differences (mostly in pins) between this GH60_REV_CHN and GH60 (Rev.A or Rev.B).  These differences can be found in this file https://github.com/kairyu/tmk_keyboard_custom/blob/master/keyboard/gh60/matrix.c (https://github.com/kairyu/tmk_keyboard_custom/blob/master/keyboard/gh60/matrix.c) (search for the keyword CHN).

There is also a very small change in setting the LEDs. See this file https://github.com/kairyu/tmk_keyboard_custom/blob/master/keyboard/gh60/config.h (https://github.com/kairyu/tmk_keyboard_custom/blob/master/keyboard/gh60/config.h) at line 59.

Other than those, this pcb should be the same as GH60 (either Rev.A or Rev.B), so is the way to enter the bootloader mode (I guess).  The bootloader mode can also be enter through pressing the push button on the backside of the pcb.

If you feel that adding the support for this pcb is not difficult, I'm very welling to help you to test your program.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bovineblitz on Thu, 18 June 2015, 23:39:57
I feel like this has been asked before but I dug around for over and hour and figured I should just ask... is there a decent way to get this to work with a handwired TKL with a teensy 2.0?  I can't figure out how to get the handwiring layout to match up with an appropriate number of rows and columns.  I used it to make a small handwired footboard for a handicapped friend, so I get the general idea, I feel like I'm missing something simple here though.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Fri, 19 June 2015, 03:32:24
I feel like this has been asked before but I dug around for over and hour and figured I should just ask... is there a decent way to get this to work with a handwired TKL with a teensy 2.0?  I can't figure out how to get the handwiring layout to match up with an appropriate number of rows and columns.  I used it to make a small handwired footboard for a handicapped friend, so I get the general idea, I feel like I'm missing something simple here though.

I wrote the below before thinking about this again - the handwire option supports 6x17 and that's exactly what a standard TKL appears to be.  So you just need to connect the switches going across each row using diodes, and downwards using just wire.

Perhaps you mean making it look good in the keymap editor?  If so you need to remove the appropriate "MAKE_SPACER" entries in handwire.cfg - copy the example to the bottom of the file and give it a new name just in case it goes horribly wrong.  You don't want to hide any rows or columns, but will need some of those entries left in for the gaps around the arrows.

If I am missing something perhaps the below will help - it shows the kind of thinking needed to magic up extra space - seemed a waste to delete it :)

Have you tried merging the arrows in the main section by moving alt, menu and ctrl as far left as you can and shift left one?

The remaining keys need to be connected as two columns of six so I would connect the nav cluster as one "column" and print screen, scroll lock and pause/break as the other, then connect the "rows" from ins, home and page to the key above.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: punkpc on Fri, 19 June 2015, 15:32:25
Any hopes of support for the KC60 that is being sold on Massdrop?

https://www.massdrop.com/buy/kc60-mechanical-keyboard

it has the ATmega32u4 controller
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: bovineblitz on Fri, 19 June 2015, 18:31:05
I feel like this has been asked before but I dug around for over and hour and figured I should just ask... is there a decent way to get this to work with a handwired TKL with a teensy 2.0?  I can't figure out how to get the handwiring layout to match up with an appropriate number of rows and columns.  I used it to make a small handwired footboard for a handicapped friend, so I get the general idea, I feel like I'm missing something simple here though.

I wrote the below before thinking about this again - the handwire option supports 6x17 and that's exactly what a standard TKL appears to be.  So you just need to connect the switches going across each row using diodes, and downwards using just wire.

Perhaps you mean making it look good in the keymap editor?  If so you need to remove the appropriate "MAKE_SPACER" entries in handwire.cfg - copy the example to the bottom of the file and give it a new name just in case it goes horribly wrong.  You don't want to hide any rows or columns, but will need some of those entries left in for the gaps around the arrows.

If I am missing something perhaps the below will help - it shows the kind of thinking needed to magic up extra space - seemed a waste to delete it :)

Have you tried merging the arrows in the main section by moving alt, menu and ctrl as far left as you can and shift left one?

The remaining keys need to be connected as two columns of six so I would connect the nav cluster as one "column" and print screen, scroll lock and pause/break as the other, then connect the "rows" from ins, home and page to the key above.

You are right, I totally did the noobest thing and forgot that 0 is a column.  I was thinking there were 16, and it would be confusing as all hell to deal with just 16.  The editor not looking perfect is fine, and there's enough pins in a teensy 2.0.  Thanks for the lightbulb!
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 19 June 2015, 20:09:04
Any hopes of support for the KC60 that is being sold on Massdrop?

https://www.massdrop.com/buy/kc60-mechanical-keyboard

it has the ATmega32u4 controller
Probably, let me know when you have one in hand
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Fri, 19 June 2015, 20:34:28
If you plan on adding the Nerd60 (Atmega32u4), there are some cool things you can do with one of the LEDs (the caps lock).

The "Key Lock" option is really the PB5 "Caps Lock"...with the stock firmware it...

1. Lights up while you hold "Macro Trigger".
2. Breathes (pulses) when you double tap (lock) the "Macro Trigger" button.
3. It blinks when you triple tap the "Macro Trigger" (Program Macros)
4. Blinks twice when you double tap (lock) either FN layer.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: punkpc on Fri, 19 June 2015, 21:02:06
Any hopes of support for the KC60 that is being sold on Massdrop?

https://www.massdrop.com/buy/kc60-mechanical-keyboard

it has the ATmega32u4 controller
Probably, let me know when you have one in hand
Won't have my hands on it till middle of August, but I will post all info needed once I do.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 19 June 2015, 21:08:58
How difficult it is to add support to the GH60 Satan PCB ? https://geekhack.org/index.php?topic=66624.msg1712129#msg1712129 (https://geekhack.org/index.php?topic=66624.msg1712129#msg1712129)

Looks like a 32u4 so it will work, but you need to find/work out the key matrix (which pins on the controller go to which rows/columns of switches) and find some way of putting it into bootloader mode :)

This pcb (aka. GH60_REV_CHN) has been widely used in China. I bought one last week and discovered that the procedure of customization and reflashing is EXTREMELY tedious. If you can make your program work with this pcb, LOTS of Chinese people, as far as I know, will benefit from it.

The source of its firmware is modified from that for the GH60. You will find that there are only little differences (mostly in pins) between this GH60_REV_CHN and GH60 (Rev.A or Rev.B).  These differences can be found in this file https://github.com/kairyu/tmk_keyboard_custom/blob/master/keyboard/gh60/matrix.c (https://github.com/kairyu/tmk_keyboard_custom/blob/master/keyboard/gh60/matrix.c) (search for the keyword CHN).

There is also a very small change in setting the LEDs. See this file https://github.com/kairyu/tmk_keyboard_custom/blob/master/keyboard/gh60/config.h (https://github.com/kairyu/tmk_keyboard_custom/blob/master/keyboard/gh60/config.h) at line 59.

Other than those, this pcb should be the same as GH60 (either Rev.A or Rev.B), so is the way to enter the bootloader mode (I guess).  The bootloader mode can also be enter through pressing the push button on the backside of the pcb.

If you feel that adding the support for this pcb is not difficult, I'm very welling to help you to test your program.

I'll check it out.  Do you think many will make it to the USA?
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Fri, 19 June 2015, 21:14:53
If you plan on adding the Nerd60 (Atmega32u4), there are some cool things you can do with one of the LEDs (the caps lock).

The "Key Lock" option is really the PB5 "Caps Lock"...with the stock firmware it...

1. Lights up while you hold "Macro Trigger".
2. Breathes (pulses) when you double tap (lock) the "Macro Trigger" button.
3. It blinks when you triple tap the "Macro Trigger" (Program Macros)
4. Blinks twice when you double tap (lock) either FN layer.

I've started adding some enhanced LED functions.  It's been going slow, I've been enjoying the summer lately.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Fri, 19 June 2015, 21:17:27
I've started adding some enhanced LED functions.  It's been going slow, I've been enjoying the summer lately.

I don't blame you, if we ever see Sumner this year in Chicago...I'll probably enjoy it too...
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: suicidal_orange on Sat, 20 June 2015, 13:17:23
I'll check it out.  Do you think many [GH60 Satans] will make it to the USA?

I've seen this PCB mentioned on here quite a lot recently, half the time as a cheap option for a 60% build and the other half people moaning about the firmware.  Seems a good candidate for EasyAVR :thumb:
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 20 June 2015, 19:29:35
The Advanced LED Config is starting to shape up.  Here's my current Zeta config.

[attachimg=1]

Trying to test it now
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: metalliqaz on Sat, 20 June 2015, 21:27:57
Okay I put up a new release (6/20) with the latest expansion to LED configuration.  It hasn't had enough testing to call it a full release.

The normal LED menus are gone, and there is now a popup window for configuring LEDs.  It runs in one of two modes.  Basic is just like before.  Advanced gives full control over what LED gets set for every situation.  These actions can now include blink codes.
Title: Re: Easy AVR USB Keyboard Firmware and Keymapper
Post by: RavenII on Sun, 21 June 2015, 01:13:18