-
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.
(https://i.imgur.com/iyIgjsn.png)
Some of the supported boards
- Epsilon (https://geekhack.org/index.php?topic=41390.0) ***
- Qazpad (https://geekhack.org/index.php?topic=43183.0) (Tau) ***
- CompactTKL (https://geekhack.org/index.php?topic=71161.0) (Zeta) ***
- Phantom (http://deskthority.net/wiki/Phantom) ***
- HID Liberation Device (https://geekhack.org/index.php?topic=35065.0) (custom controller for the Filco MJ2) ***
- Kitten Paw (https://geekhack.org/index.php?topic=46700.0) (custom controller for the Filco fullsize) ***
- Pegasus Hoof (V1/V2) (https://geekhack.org/index.php?topic=46700.0) (custom controller for the Filco MJ2) ***
- Black Petal (https://geekhack.org/index.php?topic=46700.0) (custom controller for the Rosewill RK-9000) ***
- Frosty Flake (v1/v2) (https://geekhack.org/index.php?topic=46700.0) (custom controller for the Quickfire Rapid) ***
- Ghost Squid (https://geekhack.org/index.php?topic=46700.0) (custom controller for the Quickfire XT) *
- GH60 (https://geekhack.org/index.php?topic=41464.0) *
- GH36 (https://geekhack.org/index.php?topic=61306) *
- GHpad (https://geekhack.org/index.php?topic=38963) *
- KMAC (http://www.originativeco.com/collections/custom-keyboards/products/kmac-2) (OG KMAC / KMAC 1.2 / KMAC 2) ***
- JD40 (https://geekhack.org/index.php?topic=47133.0) ***
- JD45 (https://geekhack.org/index.php?topic=62641.0) **
- Techkeys Card (http://techkeys.us/collections/accessories/products/techkeys-keyboard-business-card) **
- Orion (https://geekhack.org/index.php?topic=55523.0) ***
- LightSaver (https://geekhack.org/index.php?topic=56877.0) *
- Octagon (https://geekhack.org/index.php?topic=65036.0) *
- Atreus (http://atreus.technomancy.us/) *
- Planck PCB (http://ortholinearkeyboards.com/) ***
- SixShooter (https://geekhack.org/index.php?topic=67338.0) (custom controller for CM Switch Tester) *
Want more? Make a request.
Maturity Ratings: *** = Tested and working completely ** = Probably working * = No testing, might not work
Features
- Fully programmable (of course)
- 10 layers
- key actuation can be configured for normal mode, toggle on/off, rapid-fire repeat, or dual-use (tap keys)
- 14 firmware macros
- 1 RAM macro, recordable on the fly
- N-Key Rollover (NKRO)
- 1kHz polling rate
- Media keys
- Mouse keys
- Programmable LEDs
- Backlighting effects
- LED dimming
- Advanced special features such as...
- Virtual Numpad
- Win Lock on Scroll Lock
- Default layer selection
- Customizable debounce algorithms and timing
- Unlink Num Lock
- Embedded password generator
- Supports ATmega32U4, ATmega32U2, and ATmega16U2 ...so far
Download
Moved to Github (https://github.com/dhowland/EasyAVR/releases)
Directions
See the official documentation (http://dhowland.github.io/EasyAVR/build/html/index.html)
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)
-
HOWTOs go here.
-
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
- Fix LEDs on GH36 and JD45
- Sigma support
2015-05-10: New release
- Add new \HINT() macro
- Extend macro buffer to 2kB
- Fix broken LED behavior in Zeta and possibly others
2015-04-20: New release
- Improvements to handwire matrix
- fix bugs in autokey
2015-04-19: New beta release
- Fix rapidfire bug
- Fix broken handmod matrix
- Internal optimizations
2015-04-16: New beta release
- Actions and tapkeys can be assigned to any key on any layer, instead of just mods/fn
- Any key on any layer can be sent with any combination of mods, instead of just shift on mods/fn
- Allow use of MX Lock on caps/scroll/num lock instead of just caps
- New rapid fire key mode
- Fix SCANCODE_BOOT not working
- Many internal optimizations and bugfixes
- Zeta support
2015-03-26: Quick update
- Planck PCB support
- Pegasus Hoof v2 support
- Sixshooter support
2015-03-14: Quick update
- Tweak Techcard and Lightsaver
- Initial Octagon support
- Make the picker tool MUCH less annoying to use
2015-03-07: New release
- Add ANY_FN_ACTIVE LED assignment
- Improve documentation
2015-03-04: New release
- Internal optimizations
- Bump USB keyboard polling interval to 1ms
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.
- Lightsaver support
- New setting: default LED dimmer level
2015-03-01: New release
- Remove FN_LOCK and replace with FN_ACTIVE through FN9_ACTIVE
- Internal optimizations and bugfixes
- Allow an LED indicator to be set to backlight on boards with backlighting
- Add new backlight mode: Erosion
2015-02-23: New release
- Allow NKRO disable without disabling mouse and media keys
- Add the ability to use the rare Mac-only scancodes if desired
- Add "search" media key
- Extend the number of firmware macros from 12 to 14
2015-02-21: New release
- Rename Smallfry to JD40. Smallfry != JD40 and the former isn't currently supported. (though it could be)
- Correct the USB device descriptors to identify hardware
- More robust on KMAC and Orion
- Fix LED backlighting dynamic modes and allow LED dimmer to go lower
- Internal optimizations
- Update Atreus
2015-02-15: New release
- Add Shifted mode for mods and Fn keys
- Add \WAIT() macro function
2015-02-13: Quick update
- Atreus Support
- Fix invalid .hex files
- Fix parsing of ALT codes in macros
2015-02-01: Beta version updated
- JD45 Support
- Ghost Squid Support
2014-09-02: Beta version updated
- Fix GH36 support
- Add F13-F24
2014-08-25: Beta version updated
- Add support for GH36
- Add support for Frosty Flake v2
2014-07-03: Beta version updated
- Add support for Duck Orion
- Fix bug in KMAC Caps Lock
2014-06-15: Beta version updated
- Fix improperly built HID Liberation Device binary
2014-06-15: Beta version updated
- Extended ability to perform ALT+codes with hex
- Small bugfix for running on Linux/Mac systems
- Add new feature: embedded password generator
2014-05-25: Beta version updated
- Added ability to perform ALT+codes in macros.
2014-04-20: Beta version updated
- Add new "scancode picker" to allow easier selection of key assignments.
2014-04-18: Beta version updated
- Add new config options for keyboard and mouse timing.
2014-04-14: Beta version updated
- A few minor GUI improvements.
- Add SCANCODE_MOUSE3.
2014-04-10: Release version updated and Beta version updated
- Last beta version upgraded to release version.
- Add support for Techkeys card.
- Add new feature: programmable LEDs.
2014-04-03: Beta version updated
- Add more media keys such as Browser, Mail, Media Player, Calculator, NavForward, and NavBack
2014-04-01: Beta version updated
- Change timing of the matrix scan to fix problems with Flake/Paw/Hoof/Petal
2014-03-30: Beta version updated
- Added option to disable NKRO and act like a vanilla USB HID keyboard
- Clean up 6KRO behavior
2014-03-29: Beta version updated
- Fix RAM Macro bug
- Add LED dimming
- Add option to set default backlight mode
2014-03-25: Beta version updated
2014-03-24: Beta version updated
- Make the core of the firmware understand NKRO, instead of merely superficially supporting NKRO
- Optimize for internal efficiency
- Debounce setting now allows user to select up to 99 ms
- Fix nasty memory corruptions from stack overflow on ATmega32U2 devices
- Rename Debug Console to Config Console, and remove the cryptic debug functions
2014-03-16: Beta version updated
2014-03-13: Release version updated
- Various small fixes
- Support Python 3
2014-03-12: Beta version updated
- Add more ISO configs for Phantom
- Add Locking Capslock, for keyboards with MX Lock switches on Caps
- Add option to build debug firmwares
2014-03-10: Beta version updated
2014-01-27: Beta version updated
- Add ISO layouts for Costar boards.
2014-01-26: Beta version updated
2014-01-15: Beta version updated
- Add ESCGRAVE key for 60% boards. Acts like ~ when shift is pressed, otherwise Esc.
2013-12-29: Beta version updated
- Overhaul the configuration of layouts. Users can now configure any layouts they want.
- Internal version is now v.7 -- This one is unfortunately not backwards-compatible with older versions
- Fix the 7bit layout on Phantom
2013-12-26: Release version updated
- Slight modification to GHpad support to add Fn Lock LED
- Debounce algorithm was too tight, fixed it to reduce chattering
2013-12-08: Release version updated and Beta version updated
- Last beta version upgraded to release version.
- Add prototype Smallfry keyboard support.
2013-12-04: Beta version updated
- Fix Pegasus Hoof LEDs again.
2013-11-26: Beta version updated
- Invert Pegasus Hoof LEDs.
2013-11-25: Beta version updated
- Change debounce algorithm. New version is zero delay.
2013-11-24: First release version
2013-11-23: Update to beta release
- Add KMAC support
- Make RAM macro easier to use
- Mods can now be given toggle modes like Fn keys
2013-11-21: Initial beta release
-
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!!
-
Amazing work!
-
Support for my GON 87 NS based on PS2AVRU? Thanks!
-
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. :(
-
Support for my GON 87 NS based on PS2AVRU? Thanks!
Good idea. I'll check it out. I'd also like to add KMAC
-
ohhhhhhhh snap
-
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.
-
I don't think that controller will get support. I rely on the USB parts. :(
Ok, thanks for looking into it!
-
Teensy++ 2.0 AT90USB1286 ?
-
Teensy++ 2.0 AT90USB1286 ?
Definitely supported but I don't know any keyboards that use that!
-
Added KMAC support. The slower clock in the KMAC causes me to overrun my schedule but it still seems to work fine.
-
Is it a lot of effort to support unique/other layouts?
-
Is it a lot of effort to support unique/other layouts?
Nope!
-
I have no problem using it on the Frosty Flake except that the default speed of the mouse cursor is so damn slow.
-
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.
-
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.
-
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
-
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.
-
First release version. Hopefully I have squashed all the bugs with the new features. Typing this on my KMAC2. ;)
-
Wonder if this would support SPRIT's custom PCB boards?
ATMEGA32A
ps2avrU
-
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.
-
I notice that the led indications of caps and scroll are toggled on the Pegasus Hoof. This signaling need to be fixed.
-
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?
-
Or is it that the Caps Lock turns on the Scroll Lock LED, and vice-versa?
-
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) :-[
-
I was about to suggest the ErgoDox, but that also requires the MCP23018...
(http://i.imgur.com/m09j6xpl.png)
-
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
-
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.
-
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.
-
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.
-
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.
-
Okay it is done.
-
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..)
-
;D I'll be in touch
-
I tried to program the generated .hex file into GH60(atmega32u4)
But function doesn't work. :'(
-
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.
-
Can you do the USB a.87 aikon controller? I have a nice GON keyboard, and the Aikon software is pretty limited.
-
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.
-
I thought the ATMega32 was an AVR USB controller. Isn't it the same chip as the GH60?
-
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)
-
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)
-
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!
-
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.
-
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.
-
What we have here is failure to communicate. Don't worry, the next version will fix it correctly
-
Okay emguy. New beta version posted. Give that a try.
-
Everything is fixed now ;D. I really like the idea of winkey_lock on scoll_lock.
-
Everything is fixed now ;D. I really like the idea of winkey_lock on scoll_lock.
Good :) Took the concept from the CODE keyboard
-
I'm assuming that since it supports the phantom, it would support the smallfry 40 percent easy enough?
-
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.
-
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
-
Are there going to be two versions? Will the final be teensy or GH60-alike?
-
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
-
Okay well I'll still make a teensy prototype version
-
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.
-
Okay initial Smallfry support added thanks to Regack. I'll update it to the GB version when it comes to that.
-
Excellent news.
-
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?
-
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)
-
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...
-
A magnet over the HID board. I use a powerful fridge magnet that usually holds pens.
-
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.
-
It is written in pure python. It supports any platform that Python supports.
Edit for clarification: Yes, Linux and Mac are supported.
-
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
-
It is free (as in beer) but not currently open source.
-
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. :)
-
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.
-
update: I just googled "dfu bootloader mac" and this came up: http://dfu-programmer.sourceforge.net/
perhaps that is what you need.
-
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. :(
-
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.
-
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???
-
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.
-
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.
-
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...
-
this Software not can use to ghpad
[attach=1]
[attachimg=2]
[attachimg=3]
-
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.
-
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.
-
-- 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.
-
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.
-
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.
-
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.
-
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.
Show Image
(http://i.imgur.com/nbBEU2Tl.png)
-
Maybe you could shift click two keys to select both to denote that you are programming a two unit key? Just an idea.
-
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.
-
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.
-
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...
-
Okay so it should already be working for the GHPad. Just checked it, it's the same as Regack posted.
-
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.
-
Oh ****, some **** just happened!
-
Replying so I can find this thread later.
-
Replying so I can find this thread later.
You can just click the 'Watch' button ;)
-
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... :-[
-
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
-
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!
-
Played with the new version of the software, liking it a lot. I have had no issues with my HID liberation device.
-
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.
-
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...
-
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.
-
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.
-
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]
-
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
-
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.
-
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
-
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.
-
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.
-
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? :)
-
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?
-
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.
-
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.
-
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.
-
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. :)
-
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.
-
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)
-
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:
-
[attachimg=1]
Added the ESCGRAVE key in a new beta release
-
(Attachment Link)
Added the ESCGRAVE key in a new beta release
Cool. Ty. :)
-
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!
-
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.
-
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?
-
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.
-
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.
-
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?
-
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.
-
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
-
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.
Å = {
Ö = ;
Ä = '
' = \
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.
-
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.
-
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;)
-
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?
-
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.
-
If possible at some point a layout for ISO filco 105 key would be very much appreciated :)
-
Can this work in adjacent with soarers on a m122?
-
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?
-
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.
-
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?
-
>I'm going to add ISO layout to all the keyboards that support it.
Nice... thanks for the effort :)
-
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.
-
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.
-
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!
-
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...
-
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.
-
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.
-
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.
-
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
-
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?
-
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:
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
-
Got it, thanks for the help. :D
-
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.
-
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.
-
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.
-
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
-
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.
-
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
-
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.
-
With the new ISO build everything works now for me. Thanks metalliqaz!
-
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. :)
-
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:
-
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.
-
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?
-
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.
-
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!
-
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".
-
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...
-
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!
-
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 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?
-
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.
-
Work's flawlessly on my KMAC2.
Thank you!
-
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!
-
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.
-
It's free software, dude. Various supported keyboards are for sale separately.
-
Hi. Can you make the new FaceU pcbs of spirit to be compatible? :)
-
Hi!
Would it be possible to add support for the butterfly numpad?
-
If they are using an ATmega32U4 or similar, then the answer is yes.
-
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)
-
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.
-
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:
-
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.
-
What does this mean?
(http://i.imgur.com/hcnwguA.png)
-
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)
-
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.
-
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. :)
-
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.
-
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.
-
Any news on the ISO 88 layout and why the right shift + printscreen and pause/break buttons does not work?
-
They will definitely be fixed. I'm almost done with the heavy work commitments that have been preventing me from working it.
-
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
-
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!
-
Great stuff! Your program makes everything so much easier for all of us :D. Thank you :).
-
New beta version uploaded. Fixes Phantom Right Shift. More fixes and new features coming soon!
-
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.
-
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.
-
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.
-
Few more bug fixes and moved the Beta to Release. Seems to work well on my keyboards.
-
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]
-
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?
-
... for you animals that love to mash keys...before moving it to release.
:eek:
LOL
ty man!
-
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.
-
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!
-
See FAQ.
-
See FAQ.
Fixed it, thank you very much.
-
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.
-
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
-
Ummm... don't use the new beta version just yet... I'm pretty sure I built it wrong. New update tomorrow. Sorry.
-
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 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.
-
Possible to add support for Leeku 1800?
-
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.
-
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?
-
I don't think so.
-
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. :(
-
RAM Macro now works as expected, thanks ;-)
-
any chance to add support for the techkeys buisness card?
-
I could easily support it, just don't have one to test. Is there a schematic?
-
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!
-
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!!!!
-
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.
-
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.
-
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
-
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 ;)
-
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.
-
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 *.
-
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.
-
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.
-
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.
-
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...
-
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
-
Wonderful :)
Now all work correctly ;)
Thank you very much for this amazing firmware ;)
-
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.
-
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?
-
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.
-
oohhh, thank you! :)
I haven't seen that function... After reading the help files is all clear ;D
-
How would one go about changing when the lock LEDs light up?
-
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.
-
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.
-
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.
-
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.
-
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
-
It never will. Its meant for portables, tablets and such
-
I can test the brightness thing, I have win8 on one of my machines.
-
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?
-
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.
-
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.
-
^ Bring it
-
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)
-
Correct. Only supported by some output drivers. Also, all the media keys are windows only.
-
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.
-
Phase one almost complete...
[attachimg=1]
-
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?
-
It's the Quickfire Rapid.
-
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.
-
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.
-
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
-
Interesting information :)
Yes, I will try out any new versions and report back!
-
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?
-
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.
-
compgeke, the 20140403 code fixed the issue for me, Al3xG, and geniekid. Are you sure you've tried that version?
-
I'm fairly certain I did. I'll try again this evening when I can get back inside to trip the reed switch.
-
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.
-
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.
-
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.
-
Yay! Beers all around!
-
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?
-
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.
-
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?
-
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.
-
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:
-
I see
Downloading the beta, cant wait to program the techkeys card! Will post results tomorrow
-
Will test LED function
-
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?
-
What is COMPOSE and KANA?
I haven't had a chance but with FN_LOCK can one choose the layer?
-
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.
-
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.
-
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.
-
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).
-
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)
-
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.
-
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.
-
Updated the beta again with more settings to allow control of the timing of the keyboard:
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
-
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]
-
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 ;)
-
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?
-
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
-
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
-
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,
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.
-
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:
-
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.
-
ooh, ninja'd :P
-
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.
-
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.
-
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.
-
Attached is the insecure string pickle. But, what if I wanted block pickle, or something...? Hmm.
[attachurl=1]
-
Any plans for support for indicator LED dimming on the phantoms?
-
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
-
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!
-
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.
-
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.
-
Only useful thing I could think of is a macro player. Like 40 chars of random password in your pocket
-
Well I tried the BL Dimmer and the indicator LED are still blindingly bright.
-
Well I tried the BL Dimmer and the indicator LED are still blindingly bright.
Did it do anything at all?
-
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 :/
-
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!
-
This is awesome!
Any news if this will work with Red Scarf II?
-
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.
-
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*.
-
I just tried to run the multiplatform version, and got this error. :(
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?
-
Your python installation doesn't have tkinter. Youre on Linux?
-
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.
-
You need another package. Probably called py-tk or python-tk or pytkinter or something like that.
-
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.
-
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)
-
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?
-
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.
-
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 :/
-
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.
-
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.
-
How do I disable virtual numpad?
EDIT: Found it, nevermind.
Thanks!
-
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.
-
Error when running main.py in mac os x, will try it in windows next time I boot into it.
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?"
-
Oh my bad dude. I always forget that icon thing is windows specific. I'll fix it soon. Need more OSX testers!
-
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.
-
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:
-
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!
-
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?
-
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.
-
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.
-
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
-
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.
-
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?
-
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.
-
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.
-
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.
-
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.
-
Soon that JD40 will have 3 stars next to it :))
-
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.
-
Just 1, because it hasn't been tested that much yet
-
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.
-
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
-
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.
-
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.
-
I think The current smallfry board is the teensy based one that is currently supported.
-
Yep, the one mkawa is doing the charity GB for is the Teensy version. :)
-
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 ?
-
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.
-
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.
-
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.
-
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
-
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.
-
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.
-
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.
-
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?
-
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
-
In Flip, choose the ATmega16u2
-
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!
-
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.
-
If they use the ATmega32U4, ATmega32U2, or similar, then they can be made to work. Are they open source? I can't read Korean
-
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!
-
If it uses Aikon then it probably isn't compatible
-
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.
-
In the latest multiplatform beta, under Linux (Ubuntu), I had to edit the Easy_keymap.sh to
#!\bin\sh
to
#!/bin/sh
Other than that, it works!
-
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.
-
In the latest multiplatform beta, under Linux (Ubuntu), I had to edit the Easy_keymap.sh to
#!\bin\sh
to
#!/bin/sh
Other than that, it works!
oh cripes! thanks JD. can you tell I'm working in Windows? lol
-
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
-
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.
-
Maybe I should give it a shot. I do have an MX mini I could play with
-
Maybe I should give it a shot. I do have an MX mini I could play with
YAY! :thumb:
-
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.
-
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.
-
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 :(
-
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
-
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?
-
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.
-
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.
-
could you add support to the faceU boards?
-
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.
-
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.
-
FaceU and FaceW should both use the ATmega32a controller.
-
FaceU and FaceW should both use the ATmega32a controller.
That's a good point. I have a FaceW.
-
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.
-
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
-
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.
-
Right now the only thing I need is confirmation of the ATmega part number.
-
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.
-
ATmega32a confirmed
(http://i.imgur.com/IK8KSuT.jpg)
-
Many thanks. Now I just need to make sure I own a board that has a 32A
-
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]
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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?
-
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.
-
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.
-
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.
-
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?
-
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
; 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
-
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.
-
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.
-
-watching this thread!-
-
Thanks a lot for this! It only took me 20minutes to figure out from scratch how to program my techkeys card! :thumb: :D
-
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 ? )
-
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.
-
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.
-
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!
-
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
-
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:
-
I already PM'd you the build. If it works, I will release it.
-
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!
-
Crap I thought I removed that virtual num lock being on by default....
Glad it works for you, though!
-
Can I use this to reprogram my Faceu Replica board?
-
Can I use this to reprogram my Faceu Replica board?
please see Reply #392
-
Can I use this to reprogram my Faceu Replica board?
please see Reply #392
Okay, thanks. Should have read the thread first. :Facepalm:
-
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
-
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?
-
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.
-
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.
-
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.
-
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!
-
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.
-
Any chance of getting lightsaver support?
-
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.
-
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?
-
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.
-
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.
-
Personally, I would like my Filco to show up as a Filco. Maybe I'll take another look at it when I have time.
-
I have access to a Lightsaver that can be used for testing if you're still looking for a volunteer.
-
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.
-
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.
-
Is there any way to use åäö?
-
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 ;)
-
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
-
can you remapp as many times you can on a keyboard? (JD40)
-
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...?
-
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?
-
http://www.atmel.com/Images/Atmel-7766-8-bit-AVR-ATmega16U4-32U4_Summary.pdf
Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
-
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.
-
http://www.atmel.com/Images/Atmel-7766-8-bit-AVR-ATmega16U4-32U4_Summary.pdf
Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
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:
-
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.
-
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.
-
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.
-
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?
-
It isn't created yet.
-
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? :)
-
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
-
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?
-
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.
-
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!
-
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
-
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.
-
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]
-
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 :))
-
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
-
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)
-
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 ? :)
-
Stupid question: how to use (to program) layer1, layer2, layer3, etc. with Easy AVR?
-
The side LEDs are supported, they are treated as a backlight group.
-
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.
-
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.
-
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
-
@metalliqaz Thanks, I didn’t get that “Fn” means function layer 1, while “layer 2” means function layer 2. The naming is abit confusing ...
-
@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.
-
Is it normal for Chrome to detect the .zip file to be malicious?
-
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.
-
Anyone tried this with a Light Pad?
Any plans for Eagle/Viper support?
-
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?
-
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... :-[
-
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?
-
Lightpad (https://github.com/tmk/tmk_keyboard/blob/master/keyboard/lightpad/matrix.c)
/* 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..)
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.
-
Shows what I know.
Thanks.
-
Lightpad isn't supported, as Igthorn expertly showed
-
Lightpad isn't supported, as Igthorn expertly showed
Any plans to change that?
-
I live adding support for new hardware. First I need to buy a house and move into it, though
-
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
-
Not currently supported but could probably be added
-
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)
-
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?
-
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 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
-
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.
-
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!
-
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]
-
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.
-
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
-
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.
-
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]
-
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
-
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
-
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.
-
Oh does the Nerd have one too? Interesting.
-
Oh does the Nerd have one too? Interesting.
No, it was a faceW.
I think all the winkeyless.kr boards have it.
My bad.
-
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. :)
-
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.
-
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
-
Didn't realize that the F13-F24 scancodes had already made it into the latest beta version. Thanks metalliqaz!
-
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
-
Yeah I've wanted to add that for a while
-
The Fn LED feature is available for the Phantom, right? I can't recall.
-
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 )
-
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.
-
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.
-
Somebody... anybody... help, I fell down a well!
-
Hmm, it used to work?
-
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?
-
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?
-
That's debug console. Boot mode is for reprogramming
-
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.
-
Its on boot mode if FLIP can connect.
Are you using the same program to build your firmware as before, when it worked?
-
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.
-
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.
-
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?
-
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!
-
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.
-
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!
-
No luck with either of the beta releases, going to try flashing the hex with dfu and see if that works.
-
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.
-
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.
-
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...
-
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
-
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!
-
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.
-
Will there be Duck Eagle/Viper support?
-
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.
-
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.
-
Will there be Duck Eagle/Viper support?
I would like to add that, but I need someone with the hardware to work with.
-
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.
-
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.
-
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.
-
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.
-
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.
-
What does it use?
-
What does it use?
https://mchck.org/
-
What does it use?
I think the biggest difference is that it's ARM.
-
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.
-
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.
-
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.
-
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:
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).
-
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.
-
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
-
Thank you very much for that observation! That's the fix! (Adding the new line, I mean.)
-
Is there a way to send the numpad scancodes for 0-9 when writing a macro?
-
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.
-
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.
-
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.
-
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.
-
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!
-
Obviously we are concerned, we as citizens of GeekHack are concerned for the satisfaction of every user.
-
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!
-
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:
# apt-get update && apt-get install python python-tk unzip dfu-programmer
2. Download and install Easy AVR USB Beta (download link might change):
$ 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:
$ ./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:
# dfu-programmer atmega32u2 erase
# dfu-programmer atmega32u2 flash your_custom_firmware.hex
# dfu-programmer atmega32u2 start
That's it. Enjoy your new layouts.
-
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.
-
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.
-
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.
-
Hmmm. Is the discussion in this same thread? Sorry if I'm being lazy.
-
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
-
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 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.
-
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.
-
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?
-
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>'''''''''''
-
Does this mean that you get 12 macros per layer? or 12 macros total?
-
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.
-
Does this mean that you get 12 macros per layer? or 12 macros total?
Twelve total, sprinkled throughout the layers as desired.
-
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.
-
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.
-
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 :)
-
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!
-
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.
-
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.
-
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
-
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.
-
metalliqaz, the 12 macro limit, is that due to the chip's limitations?
-
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?
-
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?
-
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
-
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?
-
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.
-
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?
-
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
-
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.
-
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.
-
I was able to use dfu-programmer to flash onto my Frosty Flake, albeit on windows.
-
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.
-
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.
-
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 |
|---------------------+----+----+----+----+----+----+----+----+----+----+----|
-
I'll look into it
-
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]
-
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:
-
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?
-
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 |
-
Okay, watch for a PM with a test build tonight or tomorrow.
-
I absolutely LOVE how active you are with this project. Seriously.
-
so the password feature is still not available to us eh?
and what does it do? generate a random password?
-
I absolutely LOVE how active you are with this project. Seriously.
Thanks dude. Hopefully I can get around to adding some planned enhancements soon :)
-
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.
-
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.
-
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 :)
-
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...
-
Chrome reports the latest beta as malicious. Is that a known problem?
-
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.
-
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.
-
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
-
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?
-
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.
-
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!!
-
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.
-
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.
-
Is there any future plans to support Red Scarf (ghpad from kinraun's gb)?
i'd be willing to help test if needed
-
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.
-
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])
-
Yeah, that's what I'm looking for. Good stuff. What about the LEDs?
-
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 = {
- = LEDMAP_NUM_LOCK | LEDMAP_BACKLIGHT, // LEDS1 - PB2
[1] = LEDMAP_BACKLIGHT, // LEDS6 - PF7
[2] = LEDMAP_BACKLIGHT, // LEDS11 - PF6
[3] = LEDMAP_BACKLIGHT, // LEDS16 - PF5
[4] = LEDMAP_BACKLIGHT, // PWM - PB5
};
where LED.c only mentions pin PB2, for use as a num_lock light.
-
Thanks, I'll give it a shot.
-
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.
-
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?
-
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?
-
I feel like an idiot, but where is the LED menu?!?! :-X
-
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.
-
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?
-
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.
-
Worked perfectly! Thanks. Winkeylock LED function is great :)
-
Worked perfectly! Thanks. Winkeylock LED function is great :)
+1
Came to this thread with the same question. Thanks!
-
snip
Hey, congrats on 5000 posts! It came and went with no hurrah.
Well, HURRAH! :D
-
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.
-
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:
-
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!
-
Could this work with a Planck using s Teensy 2?
-
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.
-
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."
-
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 :)
-
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
-
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.
-
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!
-
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.
-
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!
-
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 ...
-
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.
-
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 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.
-
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 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.
-
I just programmed "my\RALT(64)email.com" into my epsilon and I get "my@email.com"
-
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 :(
-
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"
-
Also, just for ****s and giggles, what does this do? "my\RALT(64)\SHIFT()email.com"
Here:
(http://i.imgur.com/MUCxFGx.png)
-
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?
-
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,..?
-
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
-
the escape characters in macro works well for me :)
Oh yes, has anyone tried this with their orion or any duck boards?
-
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.
-
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 :))
-
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.
-
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 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.
-
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!
-
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
-
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.
-
I implemented it. Next version will include "Shifted" mode for modifiers and Fn keys.
-
Wow, that was quick! Thanks :D
-
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!
-
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 :)
-
He speaks the truth
-
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?
-
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.
-
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...
-
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.
-
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?
-
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.
-
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.
-
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
-
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
-
Posted a new build. Man, I hope I didn't screw up all the recompiles.
-
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.
-
Yay, a build with shifted mode!
Hopefully I'll have time to play with this tonight :D
-
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.
-
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?
-
I think you should change it! Anyone who is flashing their own firmware will likely be able to figure things out.
-
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.
-
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.
-
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.
-
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?
-
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 :)
-
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
[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".
-
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"
-
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.
-
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:
[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.
-
Your changelog says 2014 when it should be 2015 ;)
-
Your changelog says 2014 when it should be 2015 ;)
Ah, yes. That bane of every programmer: the copy-paste error. Thanks, I fixed it.
-
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 ;)
-
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.
-
I think so too. The led's main function should have priority over other effects when it's on.
-
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 :)
-
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.
-
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 :)
-
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.
-
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
-
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.
-
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.
-
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 :)
-
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
-
I've never tried it.
-
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?
-
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.
-
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.
-
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.
-
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.
-
I just re-uploaded today's build. This time without the bugs.
-
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 :))
-
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.
-
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 ;)
-
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!
-
awesome. i was able to map some macros and feed them straight in to a python console. amazing work sir!
you got my approval.
-
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.
-
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...
-
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?
-
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 ;).
-
Ah, gotcha, I'm hoping to get my hands on a QFR + Frosty Flake...
-
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
-
Sorry, not supported :(
-
Sorry, not supported :(
No worries, I appreciate the quick response!
-
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
-
Yeah, that's probably a good idea
-
It's up.
-
It's up.
Perfectly working, thanks.
-
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.
-
This is a known issue with NKRO in Linux. You can disable it in the config console.
-
(known issue with Linux, not with the firmware)
-
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)
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Hi metalliqaz! just wondering if you will be implementing some support for the Octagon 75% board?
thanks!
-
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.
-
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. :)
-
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.
-
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?
-
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?...
-
No donate link. Enjoy it for free.
-
No donate link. Enjoy it for free.
You're truly something else man, I can't express my gratitude enough.
-
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/
They keyboard can't reprogram its own Flash memory
-
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/
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.
-
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.
-
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.
-
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 !
:)
-
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.
-
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
-
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
-
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.
-
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 ?
-
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.
-
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!
-
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.
-
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!
-
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.
-
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).
-
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!
-
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.
-
It's good to have a creative outlet
[attachimg=1]
-
DUDE!...I love you. That's it, you and Jack Humbert. I love you guys.
-
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:
-
Nice! I like it with the black caps
-
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?
-
Possible? Yes. But would anyone actually use it?
-
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.
-
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.
-
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.
-
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...
-
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?
-
¯\(°_o)/¯ just an idea, that's all.
-
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?
-
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?
-
¯\(°_o)/¯ just an idea, that's all.
You may be on to something though. I'm adding programmable status to my wish list
-
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! :)
-
Since I don't own the hardware I need someone to load test builds until it works
-
I thought something like that, but yes, i can try out some builds. Can't be worse than the weird working controller ;D
-
Thanks. First things first, can you try building a Flake V2 build and running that on your Hoof V2?
-
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)
-
Okay sounds like it at least works better than hoof1. I'll start with flake2
-
wait, didn't seem so to me, i'll flash hoof again, and write what works, be right back
-
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?
-
Alright, cool. I'm going to start hacking. I'll probably have a new build tomorrow.
-
Then i've to say thank you for helping me out :thumb: .
-
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?
-
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.
-
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
-
Sorry, it's not customizable like that. Hacking on 1-off customs is really a job for TMK, I think.
-
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...
-
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
-
Posted a new version. If anyone has the new SixShooter PCB, give it a shot and let me know if it works.
-
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?
-
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.
-
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?
-
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.
-
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.
-
But it SHOULD work, so now I've got to figure out why. I'll try a test on one if my boards
-
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...
-
Wow that's wild. This will be a fun one to investigate. This is definitely something I didn't test.
-
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.
-
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.
-
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.
-
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
-
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.
-
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.
-
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.
-
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.
-
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 ![](https://emoji.tapatalk-cdn.com/emoji14.png)
-
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.
-
[ "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 :))
-
Probably memory misalignment
-
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).
-
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
-
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.
-
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
-
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.
-
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.
-
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)
-
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.
-
Is there a way to have a dedicated ~ key? i.e. typing ~ without shift.
-
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 ~
-
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!
-
[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.
-
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.
-
(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
-
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?
-
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.
-
Excellent work qaz!
-
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 :))
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
-
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.
-
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 :)
-
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 :)
#!/bin/sh
python $( cd "$( dirname "$0" )" && pwd )/main.py
-
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...
-
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.
-
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 :-[
-
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 :)
#!/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
-
Idea you might consider implimenting: LED based on network/hard drive activity.
-
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?
-
I believe it's the key above the backspace.
With flip... Maybe check or reinstall Java? I've never seen that error
-
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. ;)
-
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.
-
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.
-
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
-
Idea you might consider implimenting: LED based on network/hard drive activity.
That would require a driver on the PC
-
New beta posted. Just bug fixes.
-
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)
-
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.
-
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
-
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?
-
Do you get that error even when starting from a new layout?
-
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 :)
-
I guess it's time I actually tested the damn thing, eh?
-
If you like :))
-
I have a new idea. What if the pins were also configurable?
-
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 :-\
-
metalliqaz, does this version have the fix you included for the issue I found?
-
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.
-
Another day, another bugfix release.
-
It works!
Thanks metalliqaz, will do my layout tonight :)
-
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!
-
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.
-
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
-
...
Any other custom keyboards around with AVR working?
...
My custom numberpad works. It's upside-down, but it works :))
-
Thats easily fixed. Just reverse the row order
-
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 :)
-
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.
-
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
-
That would be excellent! Thank you! I've put your firmware into everything I could so far :)
-
Seriously, try building a KMAC binary and loading it. I'd like to know how it works.
-
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.
-
Im just curious how close the hardware is. It will never work completely.
-
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.
-
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!
-
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.
-
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 :)
-
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
-
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).
-
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.
-
Ah ok, it wasn't doing what I thought it was then, thanks for the explanation.
-
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...
-
You can add Shift to the Fn key. That will shift the whole layer, unless you are toggling.
-
Ooh clever! Thanks :)
-
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.
-
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)
-
Cool. Is the matrix the same?
-
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.
-
I'm pretty sure I put my HID liberator in my Zero way back when and it worked OK.
-
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!
-
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?
-
The zero is an alps board.
-
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
-
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.
-
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. :)
-
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.)
-
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.
-
Wondering how to use this with the duck viper
The viper layer isn't displayed as a default layer
-
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.
-
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
-
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 :)
-
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
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!
-
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).
-
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).
-
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.
-
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.
-
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
-
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.
-
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.
-
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.
-
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:
D7 LED1 (PWM backlighting)
B4 NUM
B5 CAPS
B6 LED2 (Optional zone 2 PWM backlighting or ScrLk LED)
Please let me know, and thank you very much!
Best regards,
- Ron | samwisekoi
(Auto-typed by my JD45 keyboard.)
-
I need to know if each is active high or active low.
-
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.)
-
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.
-
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.
-
Tuen them off using the BL_ENABLE key
-
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.
-
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.
-
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 :(
-
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.
-
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?
-
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.
-
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
-
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.
-
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.)
-
Is there any intention on supporting the newest techkeys card? The one with the LED Matrix?
-
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.
-
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...
-
I mean I sent him the other business card as well so I'd be happy to do it again :).
-
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)
-
What would you want it to do?
-
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.
-
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.
-
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.
-
I was thinking of getting it to scroll a personal message for things like reviews or meetups lol.
-
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!
-
[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.
-
@samwisekoi
1 - There is no FN0 key, but if you map one key to FNX for the current layer it would act as if there was.
2 - There is a binary behind each board you can choose and the handwired one is set up to have 2 LEDs alongside a 6x17 matrix, you can't change this. I requested a "60% handwire" option with more LEDs a while ago but metalliqaz was reluctant to make it to my personal requirements and was going to seek other people's opinions and research what controllers had what pins available. This was before the matrix was customisable though so not sure what the situation is now. No-one else requested it so there's no surprise he hasn't added it, maybe now he will now there's two of us? That would be great :thumb:
-
I 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?
-
#1 - That works. Thanks!
#2 - Having the handwire option at all is a great thing. And it supports my actual hand-wired keyboards as is. However, the new LED re-assignment functionality means we can have (for example) a numpad that becomes backlit on NUMLOCK or a 60% where the top row changes color when FN is pressed. And if you have enough pins, you can have those things and normal indicators!
Me, I wanted to assign a couple of pins to backlighting, and then a few more to FN state indicators.
- Ron | samwisekoi
Auto-typed by my JD45 keyboard.
p.s. And... metalliqaz slips in while I am typing. I need to ponder his theoretical versatile design and re-reply.
@samwisekoi
1 - There is no FN0 key, but if you map one key to FNX for the current layer it would act as if there was.
2 - There is a binary behind each board you can choose and the handwired one is set up to have 2 LEDs alongside a 6x17 matrix, you can't change this. I requested a "60% handwire" option with more LEDs a while ago but metalliqaz was reluctant to make it to my personal requirements and was going to seek other people's opinions and research what controllers had what pins available. This was before the matrix was customisable though so not sure what the situation is now. No-one else requested it so there's no surprise he hasn't added it, maybe now he will now there's two of us? That would be great :thumb:
-
I 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:
[75% MATRIX]
ROW0=B5
ROW1=B4
ROW2=B3
ROW3=B2
ROW4=B1
ROW5=B0
COL0=D1 # changed
COL1=C7
COL2=C6
COL3=D2 # changed
COL4=D0
COL5=D3 # changed
COL6=F0
COL7=F1
COL8=F4
COL9=F5
COL10=F6
COL11=F7
COL12=D7
COL13=D6
COL14=E6 #interior
LED0=B6 #PWM
LED1=B7 #PWM
LED2=D4 #end
LED3=D5 #end
This leaves two PWM pins for backlighting OR indicators and adds two non-PWM pins for indicators.
Anyhow, that is what I would suggest as a simpler next step. I think it provides enough LED circuits for backlighting and indicators, enough rows and columns for any sub-TKL design, and minimizes UI changes.
Just my $.02.
Thanks as always,
- Ron | samwisekoi
Auto-typed by my JD45 keyboard using firmware by metalliqaz.
The HANDWIRE hardware option is just a Phantom binary that comes with a blank grid that you can mold to any wild board you make. Phantom has two LEDs and that can't be changed.
For true 100% configurable hand-wired support, I would have to make some changes to the firmware code and create a dedicated binary, then add the configuration features to the keymapper. I am willing to do this work, but it will take some time and some planning.
Right now, I'm thinking of a generic 8x18 matrix with like 8 LED outputs that can be assigned to any combination of pins. The main change I'd have to make to support it is that the current firmware has no way of understanding that a row/col/led could be just unassigned. I would also have to make some way for the configuration of the hardware to be captured in the GUI.
There is already a request in to support multiple hardware_configuration.ini setups for different keyboards. (right now you just have to have multiple installations) Man, I think I need to hire a contractor! :eek: Are there any Python coders out there?
-
I 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.
-
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.
-
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.
-
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. :)
...
-
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.
-
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? :)
-
2.0++ uses a different AVR.
-
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.
-
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!)
-
Did you give the Techkeys card some thought?
-
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?
-
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.
-
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.
-
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 :)
-
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.
-
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! :))
-
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?
-
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?
-
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...
-
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.
-
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.
-
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?!
-
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.
-
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.
-
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!
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
Could this be used to make a leopold keypad behave like a real keypad?
-
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.
-
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.
-
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.
-
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
-
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.
-
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
-
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
-
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.
-
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.
-
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.
-
@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...
-
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.
-
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.
-
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.
-
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
-
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
-
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.
-
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.
-
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:
-
Any chance we can see the v60 added?
-
Any chance we can see the v60 added?
It doesn't have the right controller. I'm pretty sure it doesn't.
-
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.
-
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!
-
Depends on the specific microcontroller part. Got to find that out.
-
Depends on the specific microcontroller part. Got to find that out.
ATMEGA32A-A
-
Unfortunately that's a no-go
-
Unfortunately that's a no-go
Okay, thank you!
-
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?
-
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.
-
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 :))
-
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).
-
Basically I just need the hardware info. Is there a matrix description anywhere?
-
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)
-
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")
-
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 :)
-
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 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 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.
-
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
-
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!
-
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
-
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.
-
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.
-
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?
-
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.
-
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...
-
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:
-
The Advanced LED Config is starting to shape up. Here's my current Zeta config.
[attachimg=1]
Trying to test it now
-
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.
-
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.
Works fine on the Frosty Flake. Perhaps you can add "All" as an LED location??
-
Oh no, you've expanded the matrix on the handwire :)) Is this feature now stabilised? I'll have to revisit my config files which isn't fun, so I'll wait until it is if not.
Oh and thanks for bringing back the multiplatform build :)
-
Its stable now
-
Is this compatible with the Duck Lightpad/Butterlfy pad (https://geekhack.org/index.php?topic=53348.0)?
-
Not yet. If you can dig up the details I can probably support it
-
What kind of details would you need?
-
What kind of details would you need?
Row/column to what pins.
Something like this (http://www.gonskeyboardworks.com/index.php?controller=attachment&id_attachment=12) or this (https://geekhack.org/index.php?topic=51252.msg1762063#msg1762063)
-
Does it work with the RedScarf 60% (RS60)? I know it uses the ATMEGA32U4. Other than that, there is no information on it or how to do the firmware stuff.
-
Does it work with the RedScarf 60% (RS60)? I know it uses the ATMEGA32U4. Other than that, there is no information on it or how to do the firmware stuff.
Supports ATmega32U4, ATmega32U2, and ATmega16U2
Technically it's possible, but I can imagine that between life, work, adding keyboards, features, taking care of bugs, work, and life...etc...I can imagine that it might take a while if it even gets added. Not only that, but if you look at a few posts above, you need to know the Matrix of the keyboard in question. I gave examples.
-
Does it work with the RedScarf 60% (RS60)? I know it uses the ATMEGA32U4. Other than that, there is no information on it or how to do the firmware stuff.
Supports ATmega32U4, ATmega32U2, and ATmega16U2
Technically it's possible, but I can imagine that between life, work, adding keyboards, features, taking care of bugs, work, and life...etc...I can imagine that it might take a while if it even gets added. Not only that, but if you look at a few posts above, you need to know the Matrix of the keyboard in question. I gave examples.
This guy (https://github.com/kairyu/tmk_keyboard_custom/tree/master/keyboard) added support for Redscarf on TMK, but I don't know if it is the same model.
-
A TMK build is sufficient, because I can get the matrix info from the code. If there are several models of the RedScarf with different matrix configurations, then obviously that would be a problem.
At this point, I've had requests for the following
KMAC mini
viper
lightpad
kc60
G60 Satan
RS60
I think that's everything. Since I don't own the hardware, the most important requirement for each is a "champion". Someone who owns the board, is able to track down the hardware details, and willing to try out lots of test builds. The energy of the champion is what makes it happen.
If you want support but don't have the skill or time to be a champion, then your only other option is to ship me your keyboard and wait.
I was on vacation, so I may be able to get a test for some of the above boards out fairly soon now that I'm home.
-
A TMK build is sufficient, because I can get the matrix info from the code. If there are several models of the RedScarf with different matrix configurations, then obviously that would be a problem.
At this point, I've had requests for the following
KMAC mini
viper
lightpad
kc60
G60 Satan
RS60
I think that's everything. Since I don't own the hardware, the most important requirement for each is a "champion". Someone who owns the board, is able to track down the hardware details, and willing to try out lots of test builds. The energy of the champion is what makes it happen.
If you want support but don't have the skill or time to be a champion, then your only other option is to ship me your keyboard and wait.
I was on vacation, so I may be able to get a test for some of the above boards out fairly soon now that I'm home.
Nerd60?
-
This guy (https://github.com/kairyu/tmk_keyboard_custom/tree/master/keyboard) added support for Redscarf on TMK, but I don't know if it is the same model.
I recently got a Red Scarf II 60% (Ver A, rs60) from taobao. I'm using that firmware, it works relatively OK, once I figured out the other changes that he did to the standard TMK (like reading the keymap from eeprom, which is not erased on reprogramming - so I couldn't understand why it's still using the old keymap even though I changed stuff in keymap.c).
I am willing to do some work for supporting this board in Easy AVR. I can check connections on the PCB and such, and can do some firmware testing. As far as LEDs are concerned, ATM I only have the Caps Lock LED (and these funky 4 SMT LEDs on the bottom for the "logo"). I can also understand avr-gcc code - but I guess that's not too helpful here ;)
I'll provide the hardware matrix (perhaps tomorrow). It's my main keyboard at the moment.
EDIT: I'm using KBT Pure layout (standard - split right shift). Until I have another usable board, I don't really want to resolder the switches to something else - so I hope that the support can be done without that.
-
A TMK build is sufficient, because I can get the matrix info from the code. If there are several models of the RedScarf with different matrix configurations, then obviously that would be a problem.
At this point, I've had requests for the following
KMAC mini
viper
lightpad
kc60
G60 Satan
RS60
I might be getting my hands on one of those in the next few weeks. I'll look into it and make some pictures of the PCB if I can.
-
A TMK build is sufficient, because I can get the matrix info from the code. If there are several models of the RedScarf with different matrix configurations, then obviously that would be a problem.
At this point, I've had requests for the following
KMAC mini
viper
lightpad
kc60
G60 Satan
RS60
I think that's everything. Since I don't own the hardware, the most important requirement for each is a "champion". Someone who owns the board, is able to track down the hardware details, and willing to try out lots of test builds. The energy of the champion is what makes it happen.
If you want support but don't have the skill or time to be a champion, then your only other option is to ship me your keyboard and wait.
I was on vacation, so I may be able to get a test for some of the above boards out fairly soon now that I'm home.
Nerd60?
Why not use GON's tool he made for that? He has a guide for it here (http://www.gonskeyboardworks.com/manuals/110-nerdy-gui.html) and you can download it on the same page from the downloads tab.
-
I've been told that GON's boards dont use the DFU or Teensy bootloaders, so there isn't really a way to program my code to the Nerd60. If I'm mistaken about that, just let me know.
-
I've been told that GON's boards dont use the DFU or Teensy bootloaders, so there isn't really a way to program my code to the Nerd60. If I'm mistaken about that, just let me know.
You're required to change the bootloader, but after that...field day. ^-^
-
Yeah not sure how many people have AVR dev kits
-
Not supporting it, got it.
-
Not supporting it, got it.
You can always pretend it's handwired and set it up yourself, the firmware won't be offended :))
-
OK, so here's the info I gathered about my Red Scarf II. If you need some photos, just ask.
Board Info
==========
- Silkscreen on the bottom side says "Red Scarf II 60" and "Ver.A". Top side "logo" says "RS60".
- This version has no ISO option, only ANSI.
- Right shift can be split, backspace can be split (HHKB-style).
- DFU bootloader (activated on reset, does not erase eeprom on erase).
- AVR ISP pins are broken out to through-hole pads (yay!), order is (starting from the end closer to the middle of the board).
gnd miso vcc sck mosi reset
- The [TMK files from Kai Ryu](https://github.com/kairyu/tmk_keyboard_custom/blob/master/keyboard/RedScarfII) work with this keyboard. Note that these sources assume a bigger keyboard (numpad + function keys), but 60% is really just a subset of that.
Summary
=======
Rows
----
Row selection is done via a 74HCT138 decoder. Its inputs are routed to PB0, PB1 and PB2. Rows are unselected by taking these high. Rows (0,1,2,3,4 for the 60% version) are selected by writing the binary representation of the row to the three pins; here's a table from the above sources:
row: 0 1 2 3 4 5 x
pin: B2 0 1 0 1 0 1 1
B1 0 0 1 1 0 0 1
B0 0 0 0 0 1 1 1
Initialisation is just marking the pins as outputs.
Columns
-------
Tied like this:
col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
pin: F4 F1 F0 B3 D0 D1 D4 D5 D6 D7 F7 F6 D2 D3
-------------------------------------------------------------
|C0 | C1| C2| C3| C4| C5| C6| C7| C8| C9|C10|C11|C12| C13 |(R2,C12 if split Bsp)
+-----------------------------------------------------------+
|C0 | C1| C2| C3| C4| C5| C6| C7| C8| C9|C10|C11|C12| C13 |
+-----------------------------------------------------------+
|C0 | C1| C2| C3| C4| C5| C6| C7| C8| C9|C10|C11| C13 |
+-----------------------------------------------------------+
|C0 | C2| C3| C4| C5| C6| C7| C8| C9|C10|C11| C12 |C13|
+-----------------------------------------------------------+
|C0 | C1 | C2 | C9 |C10 |C11 |C12 |C13 |
-------------------------------------------------------------
Initialised as inputs with pull-ups; triggered when low.
Wiring
------
Column_pin --- switch --- diode anode (+) --- diode cathode (-) --- row pin on 74HCT138
LEDs
----
- CapsLock: PC7 (on when pin low)
- Logo: PC6 (this is 4 SMT leds on the bottom side below spacebar + one unpopulated SMT led on the bottom side, edge below Tab) (on when pin high)
- Backlight: PB7 (on when pin high)
- There is no numlock LED.
I would be really happy if you could add support for this board into your firmware! (I'm willing to test!)
-
Not supporting it, got it.
You can always pretend it's handwired and set it up yourself, the firmware won't be offended :))
Wait, you mean, it doesn't HAVE to be a teensy?
-
I really like this firmware, I have it loaded on my phantom and my Ghost Squid that just arrived today and all the testing that I have done so far it works great on the Ghost Squid, the only thing missing is the windows key lock LED that is located on F9 not a big deal considering I don't use it. Thanks for all of your hard work on it.
-
Not supporting it, got it.
You can always pretend it's handwired and set it up yourself, the firmware won't be offended :))
Wait, you mean, it doesn't HAVE to be a teensy?
Nevermind, I realized what/how you meant...but I don't think it'll work, the matrix uses PE2 which isn't mapped on a teensy. :(
-
Not supporting it, got it.
Hey if you've got a hacked one then I can whip up support. I didn't figure I'd run into anyone who could load via ISP!
-
I really like this firmware, I have it loaded on my phantom and my Ghost Squid that just arrived today and all the testing that I have done so far it works great on the Ghost Squid, the only thing missing is the windows key lock LED that is located on F9 not a big deal considering I don't use it. Thanks for all of your hard work on it.
Wow there's something new. I did not know the QF XT had 4 LEDs. Hmmm, now I just have to figure out what the I/O pin is for it. I'll try looking in Bpiphany's code.
-
OK, so here's the info I gathered about my Red Scarf II. If you need some photos, just ask.
Board Info
==========
- Silkscreen on the bottom side says "Red Scarf II 60" and "Ver.A". Top side "logo" says "RS60".
- This version has no ISO option, only ANSI.
- Right shift can be split, backspace can be split (HHKB-style).
- DFU bootloader (activated on reset, does not erase eeprom on erase).
- AVR ISP pins are broken out to through-hole pads (yay!), order is (starting from the end closer to the middle of the board).
gnd miso vcc sck mosi reset
- The [TMK files from Kai Ryu](https://github.com/kairyu/tmk_keyboard_custom/blob/master/keyboard/RedScarfII) work with this keyboard. Note that these sources assume a bigger keyboard (numpad + function keys), but 60% is really just a subset of that.
Summary
=======
Rows
----
Row selection is done via a 74HCT138 decoder. Its inputs are routed to PB0, PB1 and PB2. Rows are unselected by taking these high. Rows (0,1,2,3,4 for the 60% version) are selected by writing the binary representation of the row to the three pins; here's a table from the above sources:
row: 0 1 2 3 4 5 x
pin: B2 0 1 0 1 0 1 1
B1 0 0 1 1 0 0 1
B0 0 0 0 0 1 1 1
Initialisation is just marking the pins as outputs.
Columns
-------
Tied like this:
col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
pin: F4 F1 F0 B3 D0 D1 D4 D5 D6 D7 F7 F6 D2 D3
-------------------------------------------------------------
|C0 | C1| C2| C3| C4| C5| C6| C7| C8| C9|C10|C11|C12| C13 |(R2,C12 if split Bsp)
+-----------------------------------------------------------+
|C0 | C1| C2| C3| C4| C5| C6| C7| C8| C9|C10|C11|C12| C13 |
+-----------------------------------------------------------+
|C0 | C1| C2| C3| C4| C5| C6| C7| C8| C9|C10|C11| C13 |
+-----------------------------------------------------------+
|C0 | C2| C3| C4| C5| C6| C7| C8| C9|C10|C11| C12 |C13|
+-----------------------------------------------------------+
|C0 | C1 | C2 | C9 |C10 |C11 |C12 |C13 |
-------------------------------------------------------------
Initialised as inputs with pull-ups; triggered when low.
Wiring
------
Column_pin --- switch --- diode anode (+) --- diode cathode (-) --- row pin on 74HCT138
LEDs
----
- CapsLock: PC7 (on when pin low)
- Logo: PC6 (this is 4 SMT leds on the bottom side below spacebar + one unpopulated SMT led on the bottom side, edge below Tab) (on when pin high)
- Backlight: PB7 (on when pin high)
- There is no numlock LED.
I would be really happy if you could add support for this board into your firmware! (I'm willing to test!)
Thanks this is good stuff! I'll give it a shot
-
]
Wow there's something new. I did not know the QF XT had 4 LEDs. Hmmm, now I just have to figure out what the I/O pin is for it. I'll try looking in Bpiphany's code.
I can look in the morning if you'd like, I wouldn't know how to find it other than following the trace to the led and figuring out what pin matched but I'm sure I'd have a hard time giving you the actual name of the pin unless you had some advice on that.
-
]
Wow there's something new. I did not know the QF XT had 4 LEDs. Hmmm, now I just have to figure out what the I/O pin is for it. I'll try looking in Bpiphany's code.
I can look in the morning if you'd like, I wouldn't know how to find it other than following the trace to the led and figuring out what pin matched but I'm sure I'd have a hard time giving you the actual name of the pin unless you had some advice on that.
Hmm, I'm not certain that bpiphany added support for that LED to his controller. He didn't seem to add it to the firmware. It could be pin D0. I'll make a test build. Watch for my PM
-
Not supporting it, got it.
Hey if you've got a hacked one then I can whip up support. I didn't figure I'd run into anyone who could load via ISP!
Your call, man. Personally, I have an ISP programmer, others may not, but it could possibly encourage them to try? I'll leave it up to you whether or not to add support.
-
Is there a way to have a key be mapped to a greek letter? I type α and β all the time, would be really nice to integrate that into a key I never use (like right Alt or something).
-
Not supporting it, got it.
Hey if you've got a hacked one then I can whip up support. I didn't figure I'd run into anyone who could load via ISP!
Your call, man. Personally, I have an ISP programmer, others may not, but it could possibly encourage them to try? I'll leave it up to you whether or not to add support.
I've got an AVR ISP as well - I actually came to mechanical keyboards from AVR world. By the way, you can get an ISP programmer (or something that can be easily used as a programmer) for about $10 or maybe even less on sites like tindie. People around here often have a teensy or an arduino micro - those can be used as programmers as well.
But it may not be easy for beginners - it's definitely not just plug-and-play. The good thing is that it's enough to use it once ;)
I don't have GON's board though, so I won't be of much help here.
-
OK, so here's the info I gathered about my Red Scarf II. If you need some photos, just ask.
Board Info
==========
- Silkscreen on the bottom side says "Red Scarf II 60" and "Ver.A". Top side "logo" says "RS60".
- This version has no ISO option, only ANSI.
- Right shift can be split, backspace can be split (HHKB-style).
- DFU bootloader (activated on reset, does not erase eeprom on erase).
- AVR ISP pins are broken out to through-hole pads (yay!), order is (starting from the end closer to the middle of the board).
gnd miso vcc sck mosi reset
- The [TMK files from Kai Ryu](https://github.com/kairyu/tmk_keyboard_custom/blob/master/keyboard/RedScarfII) work with this keyboard. Note that these sources assume a bigger keyboard (numpad + function keys), but 60% is really just a subset of that.
Summary
=======
Rows
----
Row selection is done via a 74HCT138 decoder. Its inputs are routed to PB0, PB1 and PB2. Rows are unselected by taking these high. Rows (0,1,2,3,4 for the 60% version) are selected by writing the binary representation of the row to the three pins; here's a table from the above sources:
row: 0 1 2 3 4 5 x
pin: B2 0 1 0 1 0 1 1
B1 0 0 1 1 0 0 1
B0 0 0 0 0 1 1 1
Initialisation is just marking the pins as outputs.
Columns
-------
Tied like this:
col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
pin: F4 F1 F0 B3 D0 D1 D4 D5 D6 D7 F7 F6 D2 D3
-------------------------------------------------------------
|C0 | C1| C2| C3| C4| C5| C6| C7| C8| C9|C10|C11|C12| C13 |(R2,C12 if split Bsp)
+-----------------------------------------------------------+
|C0 | C1| C2| C3| C4| C5| C6| C7| C8| C9|C10|C11|C12| C13 |
+-----------------------------------------------------------+
|C0 | C1| C2| C3| C4| C5| C6| C7| C8| C9|C10|C11| C13 |
+-----------------------------------------------------------+
|C0 | C2| C3| C4| C5| C6| C7| C8| C9|C10|C11| C12 |C13|
+-----------------------------------------------------------+
|C0 | C1 | C2 | C9 |C10 |C11 |C12 |C13 |
-------------------------------------------------------------
Initialised as inputs with pull-ups; triggered when low.
Wiring
------
Column_pin --- switch --- diode anode (+) --- diode cathode (-) --- row pin on 74HCT138
LEDs
----
- CapsLock: PC7 (on when pin low)
- Logo: PC6 (this is 4 SMT leds on the bottom side below spacebar + one unpopulated SMT led on the bottom side, edge below Tab) (on when pin high)
- Backlight: PB7 (on when pin high)
- There is no numlock LED.
I would be really happy if you could add support for this board into your firmware! (I'm willing to test!)
Thanks this is good stuff! I'll give it a shot
I forgot to record that the resistors for backlight are 470 Ohm. This is quite on the safe side (i.e. even low forward voltage LEDs aren't going to be burned even on full power), but it might factor into PWM calculation so that the board doesn't draw too much power when the backlight is on (e.g. the board would draw cca 300mA just for 3V-LEDs when switched on permanently).
-
Is there a way to have a key be mapped to a greek letter? I type α and β all the time, would be really nice to integrate that into a key I never use (like right Alt or something).
Put an Alt code into a macro
-
Hmm, I'm not certain that bpiphany added support for that LED to his controller. He didn't seem to add it to the firmware. It could be pin D0. I'll make a test build. Watch for my PM
It works! :)
(Sorry for image quality)
(http://i.imgur.com/ub26Be5.jpg)
-
Nice!
-
Is there a way to have a key be mapped to a greek letter? I type α and β all the time, would be really nice to integrate that into a key I never use (like right Alt or something).
Put an Alt code into a macro
Oh nice, I was digging around in the help menus last night and for some reason that didn't occur to me. Do you know if numlock needs to be enabled for an alt code to work? I suppose I could always incorporate numlock on and off before and after the code if so.
-
I forgot to record that the resistors for backlight are 470 Ohm. This is quite on the safe side (i.e. even low forward voltage LEDs aren't going to be burned even on full power), but it might factor into PWM calculation so that the board doesn't draw too much power when the backlight is on (e.g. the board would draw cca 300mA just for 3V-LEDs when switched on permanently).
Same for the Nerd60 (the 470ohm resistors), though to be honest, I can't stand the flicker of the PWM dimming...I'm wondering if a capacitor in line would help buffer that.
-
Is there a way to have a key be mapped to a greek letter? I type α and β all the time, would be really nice to integrate that into a key I never use (like right Alt or something).
Put an Alt code into a macro
Oh nice, I was digging around in the help menus last night and for some reason that didn't occur to me. Do you know if numlock needs to be enabled for an alt code to work? I suppose I could always incorporate numlock on and off before and after the code if so.
You've got a programmable keyboard. Try it! I would think the numlocks wouldn't be necessary.
-
I forgot to record that the resistors for backlight are 470 Ohm. This is quite on the safe side (i.e. even low forward voltage LEDs aren't going to be burned even on full power), but it might factor into PWM calculation so that the board doesn't draw too much power when the backlight is on (e.g. the board would draw cca 300mA just for 3V-LEDs when switched on permanently).
Same for the Nerd60 (the 470ohm resistors), though to be honest, I can't stand the flicker of the PWM dimming...I'm wondering if a capacitor in line would help buffer that.
The software makes no accounting for the current, so the resistors make no difference.
The Easy code has to work on all kinds of keyboards, so there is a problem when it comes to PWM. I can't count on the boards to use the AVR's PWM pins for driving LEDs. Some do but many don't. Therefore, I had to implement software PWM. This is slower than the hardware PWM. Therefore, at the lowest setting, the LEDs are blinking at about 60 HZ. As the brightness goes higher, that number quickly grows, so the flickering shouldn't be visible.
A capacitor would help, yes. I'm not sure what you meant by "in line", but to be of use the cap would be in a parallel circuit to the load, not serial.
-
By the way, if there is serious flickering going on, that means the software is blowing it's schedule and should be reported as a bug.
-
The software makes no accounting for the current, so the resistors make no difference.
Not directly - but it is useful to calculate the consumption of the LEDs on the board when the backlight is fully on (this does depend on the resistors) - and if it's too much (I consider anything > 200mA "too much", but of course USB 2.0 spec allows 500mA, and I suppose on most computers one can go higher without too much complaining from the computer), then they should never be allowed to be fully on. I.e. the highest brightness should be already some level of PWM.
I know that may be too much trouble to implement.
I also have a KBT Pure (not programmable of course), and that one has only 100 Ohm resistors - so even with 3V-forward voltage LEDs, it would be 20mA through a LED, so 1.2A when fully on! Way too much! That's why I mention it.
The Easy code has to work on all kinds of keyboards, so there is a problem when it comes to PWM. I can't count on the boards to use the AVR's PWM pins for driving LEDs. Some do but many don't. Therefore, I had to implement software PWM. This is slower than the hardware PWM. Therefore, at the lowest setting, the LEDs are blinking at about 60 HZ. As the brightness goes higher, that number quickly grows, so the flickering shouldn't be visible.
I did not realize that you need to do software PWM. That sucks.
But yes, 60Hz should not be visible without waving around.
-
Yeah the resistors make a big difference. It's just the software that doesn't care. I size my resistors similar to you. I keep it safely under that USB spec maximum. I actually have a TODO item to check LED power usage during sleep mode.
-
The software makes no accounting for the current, so the resistors make no difference.
The Easy code has to work on all kinds of keyboards, so there is a problem when it comes to PWM. I can't count on the boards to use the AVR's PWM pins for driving LEDs. Some do but many don't. Therefore, I had to implement software PWM. This is slower than the hardware PWM. Therefore, at the lowest setting, the LEDs are blinking at about 60 HZ. As the brightness goes higher, that number quickly grows, so the flickering shouldn't be visible.
A capacitor would help, yes. I'm not sure what you meant by "in line", but to be of use the cap would be in a parallel circuit to the load, not serial.
Just so there's no confusion, I wasn't taking a shot at your or Gon's code. I was just stating a general opinion on LEDs, dimming, and flicker. As for the cap, I was going to try to put in in series, but you're right, it would in fact need to be paralleled in the circuit.
By the way, if there is serious flickering going on, that means the software is blowing it's schedule and should be reported as a bug.
Interesting, I don't th...well...I don't know I mean, my Ducky Zero doesn't flicker at all but I've never checked what the circuitry is for the LEDs....come to think of it, neither does my Monoprice GBL4....I wonder if there is something wrong with Gon's firmware. Admittedly, I do tend to notice flicker more than others...but still, this is pretty noticeable....hmm.
-
Yeah the resistors make a big difference. It's just the software that doesn't care. I size my resistors similar to you. I keep it safely under that USB spec maximum. I actually have a TODO item to check LED power usage during sleep mode.
Cool! Sorry for nagging ;) I'll shut up now and let you do your job - you seem to be doing it pretty well, kudos!
-
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.
Hi. Great tool. I'd like to second this! I've got several customs that I wire in the opposite direction.
-
Interesting, I don't th...well...I don't know I mean, my Ducky Zero doesn't flicker at all but I've never checked what the circuitry is for the LEDs....come to think of it, neither does my Monoprice GBL4....I wonder if there is something wrong with Gon's firmware. Admittedly, I do tend to notice flicker more than others...but still, this is pretty noticeable....hmm.
I take that back, apparently there IS a flicker on my Ducky, though unnoticeable.
Here's a video (https://www.youtube.com/watch?v=pp500uihdoA) for everyone's enjoyment...
-
Wow, I would love to be able to do 1200fps. The best my camera can do is 240fps at 320 x 240
-
Wow, I would love to be able to do 1200fps. The best my camera can do is 240fps at 320 x 240
Yep, it's a Nikon 1 J3, I remember thinking "who the hell will use this gimmicky assed feature"...and well, I found out who...it comes in really handy at times.
-
Hi, I have a problem with your software and can't figure it out. I am using a Pegasus Hoof V2 and had multiple firmwares running without a problem on my keyboard. From one Firmware to the next (extended my existing layout by some macros) my keyboard behaves weirldy. Some keys work normally, some work only once and when i press them again they get "stuck", meaning the character is repeated until i press another key. I switched back to my original Filco controller, everything is fine. I tried a completly fresh basic Easy AVR Layout, also the same problem. Even old hex files that once worked don't work anymore.
To rule out a hardware problems with the Hoof i flashed the original firmware, works perfectly. Also tried the beta, same problem. I am totally at a loss what could be the problem.
-
Hmm, I'm not certain that bpiphany added support for that LED to his controller. He didn't seem to add it to the firmware. It could be pin D0. I'll make a test build. Watch for my PM
It works! :)
(Sorry for image quality)
Show Image
(http://i.imgur.com/ub26Be5.jpg)
My alt codes are coming out as individual alt presses rather than combos. Instead of \ALT(224) being α it comes out as ☻☻♦.
-
Happy 4th of July. I'll get to bug fixin' after the holiday!
-
Finally got this working on my custom board, overall, fantastic! The only issue I'm having is with the Boot mode combo. I've got it bound to Fn+Esc, when I hit the combo, the board does something, and stops working as a keyboard, but never shows up as the atmega chip/com port on the computer, any idea what's going on? I also cannot get it back into boot mode via the reset pin either since the most recent flash.
Also, what do you name a pin in the handwire cfg for the backlighting activation?
-
Finally got this working on my custom board, overall, fantastic! The only issue I'm having is with the Boot mode combo. I've got it bound to Fn+Esc, when I hit the combo, the board does something, and stops working as a keyboard, but never shows up as the atmega chip/com port on the computer, any idea what's going on? I also cannot get it back into boot mode via the reset pin either since the most recent flash.
Also, what do you name a pin in the handwire cfg for the backlighting activation?
That's weird, It doesn't show up anywhere?...I've not tried the latest firmware (I don't think), but I'll see if mine does the same thing. That is pretty strange though...
-
Finally got this working on my custom board, overall, fantastic! The only issue I'm having is with the Boot mode combo. I've got it bound to Fn+Esc, when I hit the combo, the board does something, and stops working as a keyboard, but never shows up as the atmega chip/com port on the computer, any idea what's going on? I also cannot get it back into boot mode via the reset pin either since the most recent flash.
Also, what do you name a pin in the handwire cfg for the backlighting activation?
That's weird, It doesn't show up anywhere?...I've not tried the latest firmware (I don't think), but I'll see if mine does the same thing. That is pretty strange though...
Yeah, as far as I can tell, windows recognizes the disconnect as a keyboard as it changes mode, then nothing, no new devices.
-
I'm having the same issue, using the firmware you sent to me the other day. The same thing happens with the jumper on the back of the board as well; the board disconnects but the bootloader doesn't show up in device manager...
-
Is there support for a hand wired Atomic semi standard with teensy 2.0?
-
Is there support for a hand wired Atomic semi standard with teensy 2.0?
Yeah just modify the handwire_hardware.cfg file in the cfg folder with the way you wired up your rows/columns.
-
Finally got this working on my custom board, overall, fantastic! The only issue I'm having is with the Boot mode combo. I've got it bound to Fn+Esc, when I hit the combo, the board does something, and stops working as a keyboard, but never shows up as the atmega chip/com port on the computer, any idea what's going on? I also cannot get it back into boot mode via the reset pin either since the most recent flash.
Also, what do you name a pin in the handwire cfg for the backlighting activation?
That's weird, It doesn't show up anywhere?...I've not tried the latest firmware (I don't think), but I'll see if mine does the same thing. That is pretty strange though...
Yeah, as far as I can tell, windows recognizes the disconnect as a keyboard as it changes mode, then nothing, no new devices.
I'm having the same issue, using the firmware you sent to me the other day. The same thing happens with the jumper on the back of the board as well; the board disconnects but the bootloader doesn't show up in device manager...
Sorry, it works fine on my QFR with a Frosty Flake. I wonder if ti's specific to your KBs? Granted I'm on a Mac...maybe that's the difference?
-
Finally got this working on my custom board, overall, fantastic! The only issue I'm having is with the Boot mode combo. I've got it bound to Fn+Esc, when I hit the combo, the board does something, and stops working as a keyboard, but never shows up as the atmega chip/com port on the computer, any idea what's going on? I also cannot get it back into boot mode via the reset pin either since the most recent flash.
Also, what do you name a pin in the handwire cfg for the backlighting activation?
That's weird, It doesn't show up anywhere?...I've not tried the latest firmware (I don't think), but I'll see if mine does the same thing. That is pretty strange though...
Yeah, as far as I can tell, windows recognizes the disconnect as a keyboard as it changes mode, then nothing, no new devices.
I'm having the same issue, using the firmware you sent to me the other day. The same thing happens with the jumper on the back of the board as well; the board disconnects but the bootloader doesn't show up in device manager...
Sorry, it works fine on my QFR with a Frosty Flake. I wonder if ti's specific to your KBs? Granted I'm on a Mac...maybe that's the difference?
It's working fine on my handwire with the files I downloaded about a week ago.
-
Is everyone using Teensys? If you have a different bootloader it might not behave in exactly the same way, some controllers need a double tap of the button which isn't going to work in software.
...
Also, what do you name a pin in the handwire cfg for the backlighting activation?
You can put it on any LED, then in the configuration window you need to set that LED to backlight :)
-
Hello gents, looks like I've got some work to do! It was a long day. I had some dental work done, after which I did some yard work during which I accidentally stabbed myself in the wrist with garden shears. A few stitches at the ER and a few beers on the way home and I'm right back on track. :p
I'm sure this stuff can be straightened out. First things first, if you're using the latest code and it doesn't work, try the older versions and let me know if that fixes your problem.
By the way, while GH was down, I added an official backup page at DT wiki: http://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware
-
Nothing a few beers can't fix. Speaking of fixed, after i tried older firmwares (oldest was Easy_keymap_20150510) and worked my way up testing to the current version. All worked.
I dont't know what happened, but everything is fine. :thumb:
-
Hello gents, looks like I've got some work to do! It was a long day. I had some dental work done, after which I did some yard work during which I accidentally stabbed myself in the wrist with garden shears. A few stitches at the ER and a few beers on the way home and I'm right back on track. :p
I'm sure this stuff can be straightened out. First things first, if you're using the latest code and it doesn't work, try the older versions and let me know if that fixes your problem.
By the way, while GH was down, I added an official backup page at DT wiki: http://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware
Holy...wow, umm, get better man, gotta worry about numero uno before all else. One person told me, "You're no use to anyone if you're dead"...
-
Hello gents, looks like I've got some work to do! It was a long day. I had some dental work done, after which I did some yard work during which I accidentally stabbed myself in the wrist with garden shears. A few stitches at the ER and a few beers on the way home and I'm right back on track. :p
I'm sure this stuff can be straightened out. First things first, if you're using the latest code and it doesn't work, try the older versions and let me know if that fixes your problem.
By the way, while GH was down, I added an official backup page at DT wiki: http://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware
Any idea how to get the atmega 32u4 back into boot mode with the boot combo not working right? The reset switch is also no longer putting it into boot mode either since the last firmware flash.
-
I discovered that when highlighting things (text) with shift and up arrow it seems to behave inconsistently. The first arrow press doesn't usually highlight, the next two do, then the fourth one unhighlights everything again.
-
Hello gents, looks like I've got some work to do! It was a long day. I had some dental work done, after which I did some yard work during which I accidentally stabbed myself in the wrist with garden shears. A few stitches at the ER and a few beers on the way home and I'm right back on track. :p
I'm sure this stuff can be straightened out. First things first, if you're using the latest code and it doesn't work, try the older versions and let me know if that fixes your problem.
By the way, while GH was down, I added an official backup page at DT wiki: http://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware
Any idea how to get the atmega 32u4 back into boot mode with the boot combo not working right? The reset switch is also no longer putting it into boot mode either since the last firmware flash.
That shouldn't be possible. When you reprogram your board with Flip or Teensy, it will not allow modification to the memory that holds the bootloader. This prevents bricking your 32U4. Now, it's entirely possible that I goofed up the BOOT key somehow (although it works for me), but if you press the reset switch properly, you can be darn sure it's going into bootloader mode.
What keyboard are you using?
-
I discovered that when highlighting things (text) with shift and up arrow it seems to behave inconsistently. The first arrow press doesn't usually highlight, the next two do, then the fourth one unhighlights everything again.
What keyboard are you using?
-
It's handwired. The highlighting/unhighlighting seems random now that I play with it again. Other arrows are fine.
-
It's handwired. The highlighting/unhighlighting seems random now that I play with it again. Other arrows are fine.
Have you tried aqua key test to confirm which keys light up when you hold shift and up? Sounds like you might have a diode backwards causing ghost presses :)
-
Hello gents, looks like I've got some work to do! It was a long day. I had some dental work done, after which I did some yard work during which I accidentally stabbed myself in the wrist with garden shears. A few stitches at the ER and a few beers on the way home and I'm right back on track. :p
I'm sure this stuff can be straightened out. First things first, if you're using the latest code and it doesn't work, try the older versions and let me know if that fixes your problem.
By the way, while GH was down, I added an official backup page at DT wiki: http://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware
Any idea how to get the atmega 32u4 back into boot mode with the boot combo not working right? The reset switch is also no longer putting it into boot mode either since the last firmware flash.
That shouldn't be possible. When you reprogram your board with Flip or Teensy, it will not allow modification to the memory that holds the bootloader. This prevents bricking your 32U4. Now, it's entirely possible that I goofed up the BOOT key somehow (although it works for me), but if you press the reset switch properly, you can be darn sure it's going into bootloader mode.
What keyboard are you using?
It's a custom board based upon the atreus design. I have the reset pin of the 32u4 tied to a jumper to ground. What is the default method to put it into bootloader mode via the reset? That information is surprisingly elusive on the internet.
-
It's a custom board based upon the atreus design. I have the reset pin of the 32u4 tied to a jumper to ground. What is the default method to put it into bootloader mode via the reset? That information is surprisingly elusive on the internet.
That depends on the particular bootloader. So - what bootloader are you using (i.e. where did the 32u4 come from, or did you flash some bootloader yourself?
-
It's the factory atmega bootloader, this was a bare chip from atmega.
-
It's the factory atmega bootloader, this was a bare chip from atmega.
OK, then it's atmel's DFU bootloader, and the fuses are probably on their defaults.
Whether the chip will go to bootloader on powerup/reset depends on a couple of fuses and maybe some pin status (reading the datasheet).
BOOTRST fuse: if programmed (=0), then the chip *will* jump to bootloader on every powerup/reset. From the datasheet it looks like chips ship with BOOTRST fuse unprogrammed (=1), so that's not good for you.
HWBE fuse: if programmed (=0), then the chip can be forced to go to bootloader on powerup/reset by taking the HWB pin (PE2) low. Reading the datasheet, this fuse is by default programmed (=0) on 32U4 (potentially good for you), and unprogrammed (=1) on 32U4RC (this would be bad, since there's no way then to force entering bootloader).
So:
If the fuses are both unprogrammed (=1) then there's no way to enter the bootloader by hardware, so either you can do it in firmware, or you'll need an AVR ISP programmer and access to 4 pins of the atmega (reset, miso, mosi, sck).
If BOOTRST=1 and HWB=0, then you'll need access to the PE2 pin of the atmega. Tie this to ground, and either reset or power up the board. It will go to bootloader.
To change the fuses, you need an AVR ISP programmer (an arduino or a teensy can act as one if you have those) and access to reset, mosi, miso, sck pins.
EDIT: some further comments: Once you have an ISP programmer, you can reprogram the whole flash including the bootloader if you want. The keyboards I've seen (e.g. bphiphany's controllers) or teensy have BOOTRST fuse programmed, so that the chip enters the bootloader on every reset/powerup. The bootloaders that are used then check whether is was a reset or powerup, and will jump to the application code if it was a powerup (the behaviour is then than the keyboard will look like a keyboard when plugged in, but will go to bootloader when reset while still powered up).
-
it's specifically a 32u4-AU
Grounding the PE2 pin on reset was successful, grounding on startup was not, FYI.
-
it's specifically a 32u4-AU
Relying on what the datasheet says about the default configuration of fuses, I would recommend trying connecting PE2 with ground and resetting the board (short the jumper). Of course please check first that PE2 isn't connected to VCC in your design...
-
it's specifically a 32u4-AU
Relying on what the datasheet says about the default configuration of fuses, I would recommend trying connecting PE2 with ground and resetting the board (short the jumper). Of course please check first that PE2 isn't connected to VCC in your design...
Yep, that did it, thanks much!
-
Grounding the PE2 pin on reset was successful, grounding on startup was not, FYI.
Glad to hear that you've gotten to the bootloader!
Hm. I guess I'll need to read the datasheet some more.
Anyway, this should mean that if you don't use PE2 for anything in your keyboard, just leave it tied to ground - that way you'll have a KB on power-up and bootloader on reset...
-
I thought about that, but it's tied to one of my matrix rows :(
-
On all of my designs I leave PE2 tied to ground. It isn't an absolute requirement, though.
-
I thought about that, but it's tied to one of my matrix rows :(
You can add a SPDT switch on this port. In one position it would act as a part of the matrix, the other position would be to allow bootloader mode.
-
It's handwired. The highlighting/unhighlighting seems random now that I play with it again. Other arrows are fine.
Have you tried aqua key test to confirm which keys light up when you hold shift and up? Sounds like you might have a diode backwards causing ghost presses :)
Good idea! So I think you're right. If I hold shift and hit up, shift becomes unhighlighted. Same thing with other keys in the row (hold z and hit up, z becomes unhighlighted). Thanks for the help!
-
In my designs I generally use PE2 as a normal pin and have HWBE fuse unprogrammed (so that it's not used for determining whether to enter the bootloader or not), and BOOTRST programmed, so that bootloader is always entered. But then I usually use a serial bootloader, compiled from LUFA example projects, with an added logic at the beginning which decides when to run the bootloader and when the application.
ATMEL DFU bootloader sources are also available, but I understand LUFA stuff better than ATMEL ASF framework, so it's easier for me to do the modifications.
-
It's handwired. The highlighting/unhighlighting seems random now that I play with it again. Other arrows are fine.
Have you tried aqua key test to confirm which keys light up when you hold shift and up? Sounds like you might have a diode backwards causing ghost presses :)
Good idea! So I think you're right. If I hold shift and hit up, shift becomes unhighlighted. Same thing with other keys in the row (hold z and hit up, z becomes unhighlighted). Thanks for the help!
Sounds like you have a wiring problem.
-
"Cant build binary"
"Error: list index out of range"
what does this meannnn
-
I would like a macro to be fun@home.com but can't get the macro to print the @ character "fun\ALT(64)home.com" prints "fun♠♦home.com". Any ideas?
-
"Cant build binary"
"Error: list index out of range"
what does this meannnn
It means it doesn't work :))
What board are you trying to build it for, and what version of EasyAVR are you using?
The only time I've seen that message was when the handwire was being added and then it was a bug, but I've just checked the most recent beta and it builds here, so might be a completely different problem.
-
"Cant build binary"
"Error: list index out of range"
what does this meannnn
It means it doesn't work :))
What board are you trying to build it for, and what version of EasyAVR are you using?
The only time I've seen that message was when the handwire was being added and then it was a bug, but I've just checked the most recent beta and it builds here, so might be a completely different problem.
handwire and im using v13
i did change the pin values in the directory
-
"Cant build binary"
"Error: list index out of range"
what does this meannnn
It means it doesn't work :))
What board are you trying to build it for, and what version of EasyAVR are you using?
The only time I've seen that message was when the handwire was being added and then it was a bug, but I've just checked the most recent beta and it builds here, so might be a completely different problem.
handwire and im using v13
i did change the pin values in the directory
This has version numbers? I thought it used dates... The latest says version 13 in "About" but there have been way more than 13 builds.
Can you post your config so I can try and debug? If it builds without tweaks it should build with them :)
-
This has version numbers? I thought it used dates... The latest says version 13 in "About" but there have been way more than 13 builds.
Can you post your config so I can try and debug? If it builds without tweaks it should build with them :)
I was using the beta one, i will also try the latest.
http://i.imgur.com/jPyeYyb.png
-
This has version numbers? I thought it used dates... The latest says version 13 in "About" but there have been way more than 13 builds.
Can you post your config so I can try and debug? If it builds without tweaks it should build with them :)
I was using the beta one, i will also try the latest.
http://i.imgur.com/jPyeYyb.png
The beta is the latest. Who'd want to use an out of date one?! :))
I'll have a look now.
-
That looks fine, I'm not going to type it out to replicate the error.
One thing I just noticed is there's a Caps Lock LED set in the "all keys" layout but you have no LED pin assigned - have you disabled it? That might confuse it enough to fail to build.
-
i wasn't planning on having a led indicator for any keys. i did use one led pin on the 2.0
-
Fair enough, but if you go in "View -> LED configuration" is there one set?
Using the LED pin on the 2.0 is dodgy, but it won't stop it compiling :)
Edit: Seems there is code in there to prevent the use of D6 as either LED or part of the matrix, so this is not the issue.
@metaliqaz - why can't D6 be used? With a trans plate the built in LED is plenty bright enough to be visible, it's also possible to short the LED and use the pin normally and on other controllers it's not even an LED - can this block be changed to a warning message or is this going against the "Easy" you're going for?
-
Yeah, it w update be nice if I didn't have to replace that pin. I ran out of room in my case, so I had to solder directly to the teensy. Thanks again for this program. Aside from that everything seems super simple.
-
Is there anyway to disable the restriction on using d6?
-
Is there anyway to disable the restriction on using d6?
What restriction on using D6?
-
Is there anyway to disable the restriction on using d6?
What restriction on using D6?
I was told above that the reason I'm getting a error was because a had a column on d6
-
Is there anyway to disable the restriction on using d6?
What restriction on using D6?
I was told above that the reason I'm getting a error was because a had a column on d6
That would be my fault. I just tried to confirm to note the actual error given but seems I was asleep that day and I've got D6 on a row and a column so it's no surprise it doesn't like it. Works fine with it in there just once :-[
Anyway, fknraiden's error was different to the one I was getting - it's like the error when you were first developing the handwire. I think everything you need is in the previous 10 posts...
Sorry for the confusion!
-
This has version numbers? I thought it used dates... The latest says version 13 in "About" but there have been way more than 13 builds.
Can you post your config so I can try and debug? If it builds without tweaks it should build with them :)
I was using the beta one, i will also try the latest.
http://i.imgur.com/jPyeYyb.png
This is a software bug. I made some kind of coding error and didn't test it sufficiently before posting the software.
If you have a save file please send it to me.
If you can try making a new layout from scratch, give it a shot and see if the error still persists.
-
I'm just headed out the door but I'll try and send you that folder when I get home.
-
Hey guys, sorry about the basic question but I feel like I'm missing something.
I'm trying to enable the backlight to be on by default for my KMAC2, but searching the thread I see references to the config console. Setting the config console on my FN layer and hitting the combination doesn't seem to do anything. I'm assuming I'm overlooking something really basic :-[
-
Hey guys, sorry about the basic question but I feel like I'm missing something.
I'm trying to enable the backlight to be on by default for my KMAC2, but searching the thread I see references to the config console. Setting the config console on my FN layer and hitting the combination doesn't seem to do anything. I'm assuming I'm overlooking something really basic :-[
Have a read of console.txt in the doc folder (the helpful bit is near the bottom of the file...) you need to press the key in a text editor :)
-
Hey guys, sorry about the basic question but I feel like I'm missing something.
I'm trying to enable the backlight to be on by default for my KMAC2, but searching the thread I see references to the config console. Setting the config console on my FN layer and hitting the combination doesn't seem to do anything. I'm assuming I'm overlooking something really basic :-[
Have a read of console.txt in the doc folder (the helpful bit is near the bottom of the file...) you need to press the key in a text editor :)
Welp. Right you are!
Its always the little things that get me. Thanks a lot suicidal_orange!
-
not sure if you got a chance to look at the link i sent you. It'd be nice to have this done, no serious rush since caps for this are still in production.
-
is this working with GH60 rev.C pcb?
-
not sure if you got a chance to look at the link i sent you. It'd be nice to have this done, no serious rush since caps for this are still in production.
Yeah, sorry dude. Summer time. At least I was able to upgrade my drainage last weekend. Looking now.
I have a list of jobs to do. I'm going to collect them all from the thread and list them on the wiki page so I can get organized. I encourage people to post notes in the TODO section there to help me understand what is needed
-
Please make one for Atomic keyboard from ortholinear keyboards :thumb:
-
Please make one for Atomic keyboard from ortholinear keyboards :thumb:
You could (arguably should) use the handwired option...it's pretty easy to be honest.
-
If the have a pcb for sale, ill add easier support. If they just sell teensy kits, handwire is most appropriate, i think
-
If the have a pcb for sale, ill add easier support. If they just sell teensy kits, handwire is most appropriate, i think
The pcb is just done and the prototype had been tested.
-
So I tried searching, but I could not find if this has been asked before.
So is there a way to get the scan codes for certain Mac keys added? I have tested and the volume controls work, but none of the other media controls work. (Play/Pause, Prev Track, Next Track), I would like to also know if the other Mac command could be added.
Like these?
(http://i139.photobucket.com/albums/q316/punkpc/Keyboards/Keyboard%20Layouts/macbook_air_early.png)
These are really the only commands I can't get to work with out extra software. Also the Keyboard illumination keys are not needed.
-
I received a Mac keyboard in the post today and read the quickstart guide, I think it says that the Fx keys default to media keys etc and you have to set an option to get Fx scancodes. Have you tried choosing the Fx keys as labelled in tiny font in your pic? I may be way off as I've not seen a Mac for years but looks worth a try :)
-
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.
Hi great work you have here but quick question about this post. If I understand you correctly what you're saying is that on function layer 2 there has to be a FN2 key to get me back to default? likewise for every other layer i.e fn layer 3 needs a fn3 key, fn layer 4 needs a fn4 key
I'm working on a split design and using the handwire matrix, what i was thinking of doing was to have fn (or fn +1) to take me to layer 1, fn + 2 => layer 2.
So that as long as i have number keys on every layer all i need is a fn key to get me to anywhere i want without changing the meaning of the fn key at every layer or having to first go back to default with e.g. the fn3 in layer 3 before using the fn key to get back to the fn layer (ie. fn1 - layer1).
Is this only acheivable with macros (seems like)?
-
One other question, i'm thinking of creating a layout for an international language?
Is it possible to map keys to the diacritical marks such that if i type e and then that key (e.g. acute or grave accent in unicode) i get an accented e e.g. é
The diactrical marks are just unicode strings so unicode 0301 and 0300 for acute and grave accents.
The idea is that rather than create a ton of specific characters most of the characters in this language is created by using latin letters but adding diacritical marks to individual characters/letters as needed.
I just did a check and it's basically what the altGr key does. so i guess what i'm asking is if there's a way to create keys with user defined altgr behaviour? Hope that makes sense. Thanks
I know this is likely the realm of xkblayouts but was just curious if it even remotely makes sense in this space.
-
>Nalui333
>If I understand you correctly what you're saying is tha
>on function layer 2 there has to be a FN2 key to get me back to default?
If you're using 'toggle' yes. If you're using "normal" than technically no but the key "under" the Fn key you're holding is not available to you because when you let go of the Fn key, you're not in that layer anymore. The way I get around that is have two Fn keys on the main layer, and none on the first layer down. If I want the key under my first Fn key, I use the second Fn key to expose it.
> likewise for every other layer
This software does "layers" a little differently that TMK, which may be what you're thinking of. When you push a Fn_ key, it "turns on" that layer. To go to a different layer you have to "turn on" that one. For most usages (sorry, just came into this discussion now) you'd mostly want to be on the home layer, so you'd define a toggle key to "turn off" the layer you're on.
>what i was thinking of doing was to have fn (or fn +1)
This software definitely does not increment, nor decrement, its layers. Press a key to go to the indicated layer, that's what it does.
Now, I did ask once, and have since proven it true that you can have (again I use 'noraml') a Fn_ key in each layer. So, on Fn0 there's a nearby key that goes to Fn1. In that layer there's two keys, one to Fn2, and another to Fn3. I can 'walk' my way to Fn3 (in fact that's the only way there as the only Fn3 key I have is exposed in Fn1) But you have to keep in mind how EasyKeymap does layers ... they're not additive, you just choose them.
> without changing the meaning of the fn key at every layer
The beauty of programmable keyboards, is you can give meaning to each key as you see fit, in each layer. On my JD45 the Fn keys move around for each layer. But I remember where the keys are in each layer too. If you want to both use 'toggle' and label a key "Fn2" and have the label always be right, yes you'll need to define that key as that meaning in every layer.
Edit:
>I just did a check and it's basically what the altGr key does
Just a reminder, that keyboards send scan codes, not characters. Think about what you'd type on an uninterpreted, plain-jane keyboard, and that gets you most of your answer.
Having said that, I believe the answer is no, because recent versions have a checkbox for "with Ctrl" & "with Alt" etc but not "with Right-Alt" which is the scancode of AltGr.
Again TMK may require more programming knowledge, but it also does more of what you're trying to do.
-
>Nalui333
>If I understand you correctly what you're saying is tha
>on function layer 2 there has to be a FN2 key to get me back to default?
If you're using 'toggle' yes. If you're using "normal" than technically no but the key "under" the Fn key you're holding is not available to you because when you let go of the Fn key, you're not in that layer anymore. The way I get around that is have two Fn keys on the main layer, and none on the first layer down. If I want the key under my first Fn key, I use the second Fn key to expose it.
> likewise for every other layer
This software does "layers" a little differently that TMK, which may be what you're thinking of. When you push a Fn_ key, it "turns on" that layer. To go to a different layer you have to "turn on" that one. For most usages (sorry, just came into this discussion now) you'd mostly want to be on the home layer, so you'd define a toggle key to "turn off" the layer you're on.
>what i was thinking of doing was to have fn (or fn +1)
This software definitely does not increment, nor decrement, its layers. Press a key to go to the indicated layer, that's what it does.
Now, I did ask once, and have since proven it true that you can have (again I use 'noraml') a Fn_ key in each layer. So, on Fn0 there's a nearby key that goes to Fn1. In that layer there's two keys, one to Fn2, and another to Fn3. I can 'walk' my way to Fn3 (in fact that's the only way there as the only Fn3 key I have is exposed in Fn1) But you have to keep in mind how EasyKeymap does layers ... they're not additive, you just choose them.
> without changing the meaning of the fn key at every layer
The beauty of programmable keyboards, is you can give meaning to each key as you see fit, in each layer. On my JD45 the Fn keys move around for each layer. But I remember where the keys are in each layer too. If you want to both use 'toggle' and label a key "Fn2" and have the label always be right, yes you'll need to define that key as that meaning in every layer.
Edit:
>I just did a check and it's basically what the altGr key does
Just a reminder, that keyboards send scan codes, not characters. Think about what you'd type on an uninterpreted, plain-jane keyboard, and that gets you most of your answer.
Having said that, I believe the answer is no, because recent versions have a checkbox for "with Ctrl" & "with Alt" etc but not "with Right-Alt" which is the scancode of AltGr.
Again TMK may require more programming knowledge, but it also does more of what you're trying to do.
Thanks your response is highly appreciated. I can work with tmk but in my engineering career my rule of thumb is to not complicate things unless you have to hence starting with this firmware.... thanks again
-
Thanks your response is highly appreciated. I can work with tmk but in my engineering career my rule of thumb is to not complicate things unless you have to hence starting with this firmware.... thanks again
everyone starts with this program anymore, exactly because it's easy to see what you're doing, and is enough for 90% of the users out there. Too, if AltGr gets you what you want, you could put it on the left. Again, programmable keyboards - put the keys where you want them.
Then reprogram later, where you put them where you need them instead :))
-
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.
Hi great work you have here but quick question about this post. If I understand you correctly what you're saying is that on function layer 2 there has to be a FN2 key to get me back to default? likewise for every other layer i.e fn layer 3 needs a fn3 key, fn layer 4 needs a fn4 key
I'm working on a split design and using the handwire matrix, what i was thinking of doing was to have fn (or fn +1) to take me to layer 1, fn + 2 => layer 2.
So that as long as i have number keys on every layer all i need is a fn key to get me to anywhere i want without changing the meaning of the fn key at every layer or having to first go back to default with e.g. the fn3 in layer 3 before using the fn key to get back to the fn layer (ie. fn1 - layer1).
Is this only acheivable with macros (seems like)?
AKmalamute has explained this but I've never used TMK so the comparison is lost on me so I'm going to answer too - hopefully between the two of us you'll understand :)
What you're looking for is to have many layers easily accessible, to do this you need to choose one layer to use for your "layer selection layer" - I've chosen to use FN in this example.
On the FN layer you assign keys 1-9 to FN1-FN9 (FN1 is FN) and all of these need to be set to "Toggle" in the mode option to make the layer switch permanent so you don't have to hold anything while using the layer.
Then you choose a key to use as the layer selection key and on each other layer assign that key to FN so it's always accessible - this needs to be "Normal" in the mode box so you have to hold it for the layer to stay active, if you change your mind let it go and you stay on the current layer.
And that's it - two key access to any layer at any time :)
-
ok wait maybe i misunderstood, the layers thing.
I'm thinking :
default : fn2 (toggle) fn(normal)
layer1 : fn2(normal) fn3(normal)
layer2 : fn2 (toggle) fn(normal) (are you saying i have to define the fn2 toggle in both the default layer and layer 2 to go back and forth between default and layer2)
layer3 : fn4(normal) fn(normal)
layer4 : fn5(normal) fn(normal) (all of this just so i can get from 3 to 4, 4 to 5 etc and back to layer1 without too many key presses)
.
.
.
Okay i responded before i saw suicidal_oranges response... let me re-read and digest that...
incidentally i suspected about the one layer holding all the function keys pattern and had done that, just wanted to be sure there wasn't any other way..... the toggle part is probably what i need to wrap my ends around now....
---- update -----
okay i get suicidals explanation.
Thanks folks.
-
Actually I've made a mess of my explanation - you don't want to be messing with key 1 at all! That'll teach me for posting without reading it through before running off to eat, I'll fix it now... :-[
-
Actually I've made a mess of my explanation - you don't want to be messing with key 1 at all! That'll teach me for posting without reading it through before running off to eat, I'll fix it now... :-[
funny i actually understood your original explanation (i guess we fill in the gaps...) but the edit made it clearer.
Now to go get some brewskis....and conceive a wooden case for the keyboard.....
-
oh well it looks like my diodes are pointing the wrong way....now to go work on tmk....
-
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.
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]
I've actually had this problem for a very, very long time now (arrow keys not working in GRUB), which led me to avoid using nearly every one of the customs I own, because I generally do have to boot between Ubuntu and Windows pretty frequently.
I reprogrammed my KMAC LE tonight after I came across Ron's message. I assume he meant the numpad 0-9/Enter - whatever the case, I mapped them on another layer (so my non-numpad versions are also intact on the main layer). Yet I still have the GRUB arrow key problem.
Anyone have any new insights into this issue?
-
I'm still relying on a warm-boot. What I've found is that if I use the external, PS2 mounted number pad's arrow keys, windows will BSOD. There've been other problems with linux so I haven't used it in months; as a result I don't know if linux would have troubles with the keyboard when the grub menu can't see it. But I've never had to reboot more than once.
-
Is there any chance that we can get scan codes that aren't what the program comes with? I guess it's preference that I would try to avoid using macros to type out my Scandinavian characters, but a lot of our punctuation keys look a whole lot different as well. Is this something I'm just missing, or is it possible to add it somehow?
-
Is there any chance that we can get scan codes that aren't what the program comes with? I guess it's preference that I would try to avoid using macros to type out my Scandinavian characters, but a lot of our punctuation keys look a whole lot different as well. Is this something I'm just missing, or is it possible to add it somehow?
The codes a keyboard sends for punctuation don't change for a Scandinavian board, you just tell your OS which you'd like it to output. If you use the names of the keys in the UK layout pictured below in EasyAVR then continue to tell your OS your keyboard is Scandinavian it should work :)
(https://upload.wikimedia.org/wikipedia/commons/9/9c/ISO_keyboard_%28105%29_QWERTY_UK.svg)
No idea how the extra letters work, but unless you're making an oversize board where are you going to put them if not on a layer? To access a layer you need to press an extra key so why not use AltGr (R_Alt) like you would on a normal board?
-
Is there any chance that we can get scan codes that aren't what the program comes with? I guess it's preference that I would try to avoid using macros to type out my Scandinavian characters, but a lot of our punctuation keys look a whole lot different as well. Is this something I'm just missing, or is it possible to add it somehow?
The codes a keyboard sends for punctuation don't change for a Scandinavian board, you just tell your OS which you'd like it to output. If you use the names of the keys in the UK layout pictured below in EasyAVR then continue to tell your OS your keyboard is Scandinavian it should work :)
No idea how the extra letters work, but unless you're making an oversize board where are you going to put them if not on a layer? To access a layer you need to press an extra key so why not use AltGr (R_Alt) like you would on a normal board?
Y'know, that makes sense. Just to make sure I understand you correctly, placing the scan code for dot in EasyAVR (.[>]), telling my OS my layout is Scandinavian would result in my OS giving me (.[:])? I can't try it myself right now unfortunately. If that works, then I guess problem solved. Still would be great to be able to fully customize the shift - and as a fan of it, the R_Alt - layer, but maybe that would be hindered by hardware.
As for our extra vowels, they are just that, and have been put on the default layer on our QWERTY boards since the beginning of sliced bread. Doing the macro solution isn't that terrible, it'll just look pretty bad in software. With that said, I wonder if other keyboards type them out as some kind of macro'd alt-code or if they support it on a lower level.
This picture should show you what I mean with punctuation (and if you look at the numbers as well).
(https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/KB_Danish.svg/2000px-KB_Danish.svg.png)
-
Is there any chance that we can get scan codes that aren't what the program comes with? I guess it's preference that I would try to avoid using macros to type out my Scandinavian characters, but a lot of our punctuation keys look a whole lot different as well. Is this something I'm just missing, or is it possible to add it somehow?
The codes a keyboard sends for punctuation don't change for a Scandinavian board, you just tell your OS which you'd like it to output. If you use the names of the keys in the UK layout pictured below in EasyAVR then continue to tell your OS your keyboard is Scandinavian it should work :)
No idea how the extra letters work, but unless you're making an oversize board where are you going to put them if not on a layer? To access a layer you need to press an extra key so why not use AltGr (R_Alt) like you would on a normal board?
Y'know, that makes sense. Just to make sure I understand you correctly, placing the scan code for dot in EasyAVR (.[>]), telling my OS my layout is Scandinavian would result in my OS giving me (.[:])? I can't try it myself right now unfortunately. If that works, then I guess problem solved. Still would be great to be able to fully customize the shift - and as a fan of it, the R_Alt - layer, but maybe that would be hindered by hardware.
As for our extra vowels, they are just that, and have been put on the default layer on our QWERTY boards since the beginning of sliced bread. Doing the macro solution isn't that terrible, it'll just look pretty bad in software. With that said, I wonder if other keyboards type them out as some kind of macro'd alt-code or if they support it on a lower level.
This picture should show you what I mean with punctuation (and if you look at the numbers as well).
Show Image
(https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/KB_Danish.svg/2000px-KB_Danish.svg.png)
You've made me doubt myself now as my only experience is of accidentally using my ISO board on ANSI setting which swaps @ and " and # and \ amongst a couple of others but you can test it - use your existing keyboard (whatever it may be) and tell the OS it's a UK layout and see what happens when you press keys. If you don't get punctuation on your extra vowels then you need some new codes/macros...
And AltGr plus one key = a different letter/symbol? You're the second person to ask about this recently so it sounds like an "implied R_Alt" option would be useful. That's one for metalliqaz when he's next bored, I tried to add it to the request list on his Deskthority Wiki (http://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware#ToDo_and_Requests) but couldn't work out how to (no edit button, no signup link :confused:) - maybe you'll have more luck?
-
Is there any chance that we can get scan codes that aren't what the program comes with? I guess it's preference that I would try to avoid using macros to type out my Scandinavian characters, but a lot of our punctuation keys look a whole lot different as well. Is this something I'm just missing, or is it possible to add it somehow?
The codes a keyboard sends for punctuation don't change for a Scandinavian board, you just tell your OS which you'd like it to output. If you use the names of the keys in the UK layout pictured below in EasyAVR then continue to tell your OS your keyboard is Scandinavian it should work :)
No idea how the extra letters work, but unless you're making an oversize board where are you going to put them if not on a layer? To access a layer you need to press an extra key so why not use AltGr (R_Alt) like you would on a normal board?
Y'know, that makes sense. Just to make sure I understand you correctly, placing the scan code for dot in EasyAVR (.[>]), telling my OS my layout is Scandinavian would result in my OS giving me (.[:])? I can't try it myself right now unfortunately. If that works, then I guess problem solved. Still would be great to be able to fully customize the shift - and as a fan of it, the R_Alt - layer, but maybe that would be hindered by hardware.
As for our extra vowels, they are just that, and have been put on the default layer on our QWERTY boards since the beginning of sliced bread. Doing the macro solution isn't that terrible, it'll just look pretty bad in software. With that said, I wonder if other keyboards type them out as some kind of macro'd alt-code or if they support it on a lower level.
This picture should show you what I mean with punctuation (and if you look at the numbers as well).
Show Image
(https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/KB_Danish.svg/2000px-KB_Danish.svg.png)
You've made me doubt myself now as my only experience is of accidentally using my ISO board on ANSI setting which swaps @ and " and # and \ amongst a couple of others but you can test it - use your existing keyboard (whatever it may be) and tell the OS it's a UK layout and see what happens when you press keys. If you don't get punctuation on your extra vowels then you need some new codes/macros...
And AltGr plus one key = a different letter/symbol? You're the second person to ask about this recently so it sounds like an "implied R_Alt" option would be useful. That's one for metalliqaz when he's next bored, I tried to add it to the request list on his Deskthority Wiki (http://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware#ToDo_and_Requests) but couldn't work out how to (no edit button, no signup link :confused:) - maybe you'll have more luck?
...>>>>>,,,<<<<<;:;:;;
[';[';
So that uses the good old UK punctuation setup, and not what is normally recognized when I plug my keyboard in to any computer. But that is with software within Windows. I'll try all of this out once I can, and I'll hopefully remember to post back the results.
AltGr is really just Alt+Ctrl in one button, a modified modifier key if you will, and can ever really only be used as a modifier key, which an fn layer does just fine. With that said, Shift+AltGr opens up some serious layering possibilities without giving up shift, alt, or ctrl usage (or at least without fiddling around a lot with tap keys). Microsoft's Keyboard Layout Creator supports this, but that's still all in software and I have no idea what would be reproducible on a program like this.
Either way, thanks for your help! I'll keep at it, and I'll try to come back with some results sooner or later.
-
2 requests:
1) More total layers or a way to add/remove layers.
I need at least 8 layers to handle the following layout:
LShift+f = LAlt
LShift+d = LCtrl
LShift+OTHER = LShift+OTHER
RShift+j = LAlt
RShift+k = RCtrl
RShift+OTHER = RShift+OTHER
Together with other layers that I use, I would need at least 11 layers.
2) separate the layout from the controller
I have 3 filco's; 2 with a pegasus hoof, 1 with a hid liberation device.
Now I have to recreate my one layout for the pegasus hoof and hid.
It would be handy if I could re-use the definition and only needed to build the firmware for the 2 controllers.
Thanks
-
Not sure if this has been covered before, but on OS X using the 'British - PC' layout on a 'Pegasus Hoof' the NON_US_BACKSLASH and GRAVE_ACCENT keys are switched.
Other boards are fine on OS X and this board is fine on Windows. I've not got round to testing it on Linux yet.
-
Sorry if this is a stupid question, but is there a way to create a matrix layout of 12x10? I'm not sure if I am missing something obvious or what.
-
Sorry if this is a stupid question, but is there a way to create a matrix layout of 12x10? I'm not sure if I am missing something obvious or what.
Not a stupid question but one that should be in the FAQ - this firmware uses a binary at the core which can't be changed and the handwire layout is setup for a max of 6x18.
If I'm counting the keys in your other thread correctly there are 103 - this could be made to work with a 6x18, but it will have to be wired in an interesting and not very easy to see/understand way. How long 'til the project is due?
-
Regarding the Atomic...
If the have a pcb for sale, ill add easier support. If they just sell teensy kits, handwire is most appropriate, i think
Atomic kits with the PCB are for sale and will be shipping in mid-September. Jack has posted the Matrix.c.
https://github.com/jackhumbert/tmk_keyboard/blob/master/keyboard/atomic/matrix.c
//
// Atomic PCB Rev 0 Pin Assignments
//
// Column: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
// Pin: F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1
//
//
// Atomic PCB Rev 0 Pin Assignments
//
// Row: 0, 1, 2, 3, 4
// Pin: D0, D5, B5, B6, C6
//
Backlighting is just like the Planck PCB: on B7
To tide me over, I made some handwire layouts for the grid, MIT, and MIT + various 2U keys.
More
[1 - Grid]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
[2 - MIT]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
# Make 2U Spacebar
MAKE_KEY(4, 5, 8, 4)
MAKE_SPACER(4, 6, 0)
[3 - MIT + 2U BKSP]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
# Make 2U Spacebar
MAKE_KEY(4, 5, 8, 4)
MAKE_SPACER(4, 6, 0)
# Make 2U Backspace
MAKE_KEY(0, 13, 8, 4)
MAKE_SPACER(0, 14, 0)
[4 - MIT + 2U ALL]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
# Make 2U Spacebar
MAKE_KEY(4, 5, 8, 4)
MAKE_SPACER(4, 6, 0)
# Make 2U Backspace
MAKE_KEY(0, 13, 8, 4)
MAKE_SPACER(0, 14, 0)
# Make 2U RShift
MAKE_KEY(3, 11, 8, 4)
MAKE_SPACER(3, 12, 0)
# Make 2U Enter
MAKE_KEY(2, 12, 8, 4)
MAKE_SPACER(2, 13, 0)
-
Regarding the Atomic...
If the have a pcb for sale, ill add easier support. If they just sell teensy kits, handwire is most appropriate, i think
Atomic kits with the PCB are for sale and will be shipping in mid-September. Jack has posted the Matrix.c.
https://github.com/jackhumbert/tmk_keyboard/blob/master/keyboard/atomic/matrix.c
//
// Atomic PCB Rev 0 Pin Assignments
//
// Column: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
// Pin: F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1
//
//
// Atomic PCB Rev 0 Pin Assignments
//
// Row: 0, 1, 2, 3, 4
// Pin: D0, D5, B5, B6, C6
//
Backlighting is just like the Planck PCB: on B7
To tide me over, I made some handwire layouts for the grid, MIT, and MIT + various 2U keys.
More
[1 - Grid]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
[2 - MIT]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
# Make 2U Spacebar
MAKE_KEY(4, 5, 8, 4)
MAKE_SPACER(4, 6, 0)
[3 - MIT + 2U BKSP]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
# Make 2U Spacebar
MAKE_KEY(4, 5, 8, 4)
MAKE_SPACER(4, 6, 0)
# Make 2U Backspace
MAKE_KEY(0, 13, 8, 4)
MAKE_SPACER(0, 14, 0)
[4 - MIT + 2U ALL]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
# Make 2U Spacebar
MAKE_KEY(4, 5, 8, 4)
MAKE_SPACER(4, 6, 0)
# Make 2U Backspace
MAKE_KEY(0, 13, 8, 4)
MAKE_SPACER(0, 14, 0)
# Make 2U RShift
MAKE_KEY(3, 11, 8, 4)
MAKE_SPACER(3, 12, 0)
# Make 2U Enter
MAKE_KEY(2, 12, 8, 4)
MAKE_SPACER(2, 13, 0)
Good work :thumb:
-
Sorry if this is a stupid question, but is there a way to create a matrix layout of 12x10? I'm not sure if I am missing something obvious or what.
Not a stupid question but one that should be in the FAQ - this firmware uses a binary at the core which can't be changed and the handwire layout is setup for a max of 6x18.
If I'm counting the keys in your other thread correctly there are 103 - this could be made to work with a 6x18, but it will have to be wired in an interesting and not very easy to see/understand way. How long 'til the project is due?
Ahh that's too bad. I don't think I have time to re-wire it, so I'll have to just find a different program. Thanks for the help mate.
-
Sorry if this is a stupid question, but is there a way to create a matrix layout of 12x10? I'm not sure if I am missing something obvious or what.
Not a stupid question but one that should be in the FAQ - this firmware uses a binary at the core which can't be changed and the handwire layout is setup for a max of 6x18.
If I'm counting the keys in your other thread correctly there are 103 - this could be made to work with a 6x18, but it will have to be wired in an interesting and not very easy to see/understand way. How long 'til the project is due?
Ahh that's too bad. I don't think I have time to re-wire it, so I'll have to just find a different program. Thanks for the help mate.
If you need it working quickly to meet deadline I'd suggest Soarer's controller, if you want lots of features TMK. You can always swap later :)
-
Is there any chance that we can get scan codes that aren't what the program comes with? I guess it's preference that I would try to avoid using macros to type out my Scandinavian characters, but a lot of our punctuation keys look a whole lot different as well. Is this something I'm just missing, or is it possible to add it somehow?
The codes a keyboard sends for punctuation don't change for a Scandinavian board, you just tell your OS which you'd like it to output. If you use the names of the keys in the UK layout pictured below in EasyAVR then continue to tell your OS your keyboard is Scandinavian it should work :)
No idea how the extra letters work, but unless you're making an oversize board where are you going to put them if not on a layer? To access a layer you need to press an extra key so why not use AltGr (R_Alt) like you would on a normal board?
Y'know, that makes sense. Just to make sure I understand you correctly, placing the scan code for dot in EasyAVR (.[>]), telling my OS my layout is Scandinavian would result in my OS giving me (.[:])? I can't try it myself right now unfortunately. If that works, then I guess problem solved. Still would be great to be able to fully customize the shift - and as a fan of it, the R_Alt - layer, but maybe that would be hindered by hardware.
As for our extra vowels, they are just that, and have been put on the default layer on our QWERTY boards since the beginning of sliced bread. Doing the macro solution isn't that terrible, it'll just look pretty bad in software. With that said, I wonder if other keyboards type them out as some kind of macro'd alt-code or if they support it on a lower level.
This picture should show you what I mean with punctuation (and if you look at the numbers as well).
Show Image
(https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/KB_Danish.svg/2000px-KB_Danish.svg.png)
EasyAVR is US and UK only. I tried adding internationalization a long time ago but I couldn't make it happen. I have, like, no experience with anything that's not English. Remember that scancodes aren't the same as characters. If you press a dot, you get the scancode for the US dot.
-
2 requests:
1) More total layers or a way to add/remove layers.
I need at least 8 layers to handle the following layout:
LShift+f = LAlt
LShift+d = LCtrl
LShift+OTHER = LShift+OTHER
RShift+j = LAlt
RShift+k = RCtrl
RShift+OTHER = RShift+OTHER
Together with other layers that I use, I would need at least 11 layers.
2) separate the layout from the controller
I have 3 filco's; 2 with a pegasus hoof, 1 with a hid liberation device.
Now I have to recreate my one layout for the pegasus hoof and hid.
It would be handy if I could re-use the definition and only needed to build the firmware for the 2 controllers.
Thanks
(1) Well that's tough. The number of layers is stuck where it is because I'm bumping up against the memory limit on the microcontrollers. I think you can probably condense the number of layers you need down a bit, if you get really creative. Honestly I've never considered the case of adding a modifier to a shifted key..
(2) That might be possible. I'm thinking of a re-write of the GUI that could be made to separate hardware and layouts.
-
Regarding the Atomic...
If the have a pcb for sale, ill add easier support. If they just sell teensy kits, handwire is most appropriate, i think
Atomic kits with the PCB are for sale and will be shipping in mid-September. Jack has posted the Matrix.c.
https://github.com/jackhumbert/tmk_keyboard/blob/master/keyboard/atomic/matrix.c
//
// Atomic PCB Rev 0 Pin Assignments
//
// Column: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
// Pin: F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1
//
//
// Atomic PCB Rev 0 Pin Assignments
//
// Row: 0, 1, 2, 3, 4
// Pin: D0, D5, B5, B6, C6
//
Backlighting is just like the Planck PCB: on B7
To tide me over, I made some handwire layouts for the grid, MIT, and MIT + various 2U keys.
More
[1 - Grid]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
[2 - MIT]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
# Make 2U Spacebar
MAKE_KEY(4, 5, 8, 4)
MAKE_SPACER(4, 6, 0)
[3 - MIT + 2U BKSP]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
# Make 2U Spacebar
MAKE_KEY(4, 5, 8, 4)
MAKE_SPACER(4, 6, 0)
# Make 2U Backspace
MAKE_KEY(0, 13, 8, 4)
MAKE_SPACER(0, 14, 0)
[4 - MIT + 2U ALL]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
# Make 2U Spacebar
MAKE_KEY(4, 5, 8, 4)
MAKE_SPACER(4, 6, 0)
# Make 2U Backspace
MAKE_KEY(0, 13, 8, 4)
MAKE_SPACER(0, 14, 0)
# Make 2U RShift
MAKE_KEY(3, 11, 8, 4)
MAKE_SPACER(3, 12, 0)
# Make 2U Enter
MAKE_KEY(2, 12, 8, 4)
MAKE_SPACER(2, 13, 0)
Thanks!
-
(http://www.casfm.org/help_wanted/help_wanted1.jpg)
Looking for Embedded C and Python programmers to help me take this project open source.
This mostly consists of cleaning up disgusting code that is a result of the worst case of feature-creep the world has ever seen.
Git and Linux skills a plus.
Inquire within.
Thanks.
-
EasyAVR is US and UK only. I tried adding internationalization a long time ago but I couldn't make it happen. I have, like, no experience with anything that's not English. Remember that scancodes aren't the same as characters. If you press a dot, you get the scancode for the US dot.
There's not a different character for the UK ' @ compared to US ' " so are you sure the extra codes even exist? It might be as "easy" as creating a language option which maps the UK ISO scancodes to different labels then let the OS deal with them. Pretty much every computer in Denmark will be set to Danish already and from Torre's experimentation this seems to work.
I would like to apply to be a dev on this, I only have rusy C experience and a little Python but have plenty of spare time, Linux and general programming skills and lots of enthusiasm. Worst case I'm useless, best case I learn something and can help :)
-
(1) Well that's tough. The number of layers is stuck where it is because I'm bumping up against the memory limit on the microcontrollers. I think you can probably condense the number of layers you need down a bit, if you get really creative. Honestly I've never considered the case of adding a modifier to a shifted key..
I could condense it down if there was an option to remove a modifier.
With that I could make all letters default shifted in the shift layer and add the "remove shift" option to my custom alt key (the j key).
That way, when e.g. pressing rshift + j + d, the controller would evaluate ((alt - shift) + (d + shift)) resulting in alt + d.
Of course, Only 1 shift should be removed so that I could also do rshift + j + l (my custom lshift) + d to send lshift + alt + d.
(((alt - shift) + (lshift) + (d + shift)) = alt + lshift + d)
How difficult do you think this would be to implement?
I have Java programming experience, so depending on how complex the source code is, I could try to add this feature myself.
-
EasyAVR is US and UK only. I tried adding internationalization a long time ago but I couldn't make it happen. I have, like, no experience with anything that's not English. Remember that scancodes aren't the same as characters. If you press a dot, you get the scancode for the US dot.
There's not a different character for the UK ' @ compared to US ' " so are you sure the extra codes even exist? It might be as "easy" as creating a language option which maps the UK ISO scancodes to different labels then let the OS deal with them. Pretty much every computer in Denmark will be set to Danish already and from Torre's experimentation this seems to work.
I would like to apply to be a dev on this, I only have rusy C experience and a little Python but have plenty of spare time, Linux and general programming skills and lots of enthusiasm. Worst case I'm useless, best case I learn something and can help :)
The scancodes are directly from the USB HID spec. I didn't make anything up. The only difference between US and Intl. keyboards is how the computers interpret the codes. The code that results from pressing each key is the same.
-
this might have been covered before: is it possible to define the behavior of a key combination?
for instance, if i'd like to set ctrl+F1 to get to the bootloader mode, how can i do it with the mapper?
thanks,
-
this might have been covered before: is it possible to define the behavior of a key combination?
for instance, if i'd like to set ctrl+F1 to get to the bootloader mode, how can i do it with the mapper?
thanks,
Four simple steps:
Edit -> copy layer
Set the key you call Ctrl to an FN with "with mods: Ctrl" ticked at the top
On the layer which matches the FN number edit -> paste layer
On the layer change F1 to be bootloader
It's a bit strange but it works :)
-
So much easier to make the combo Fn+F1.
Ctrl and F1 both mean something to the computer. The firmware doesn't try to get in the way of that. Any extended functionality was intended to be accessed via a Fn key, which does not generate a scancode.
If you are short on available keys, you can compress the Ctrl key and the Fn key like suicidal_orange pointed out.
Another option is to use a key that you don't press very often (perhaps PrtScr, R_Win, Caps, or F10) as a Fn key in dual-use mode. For example, holding F10 makes it a Fn, but tapping it makes it F10.
-
nice! it just works! :thumb:
no wonder people uses so many layers...
thank you for the help.
-
Just wanted to say thanks for this firmware.
Just got a frosty flake and have been having some fun.
I'm new to the programmable keyboard thing, but so far the one bit I'm unsure is what is the "With Mods" section about?
So far I've just done light stuff like put a numpad on the right half of my QFR and mouse controls on arrows keys, etc.
Also I've had a few occasions where the letter H is either coming out twice, or will come out 2-3 characters later.
For instance , efghijhklm. Tweak the debounce? Anyone happen to know what the default is on a QFR as it was fine for the 5 months I had it before playing with this.
-
Just wanted to say thanks for this firmware.
Just got a frosty flake and have been having some fun.
I'm new to the programmable keyboard thing, but so far the one bit I'm unsure is what is the "With Mods" section about?
So far I've just done light stuff like put a numpad on the right half of my QFR and mouse controls on arrows keys, etc.
Also I've had a few occasions where the letter H is either coming out twice, or will come out 2-3 characters later.
For instance , efghijhklm. Tweak the debounce? Anyone happen to know what the default is on a QFR as it was fine for the 5 months I had it before playing with this.
My QFR does the same thing, I'm assuming it's something related to debounce as you've mentioned. I only started noticing it in the later releases of the FW. Maybe only the latest specifically, I can say that the older versions didn't exhibit this behavior, but I didn't update everytime there was a new release so I don't know when it started aside from the last release.
-
I'm new to the programmable keyboard thing, but so far the one bit I'm unsure is what is the "With Mods" section about?
Say you have a really small board like a JD40 (see pic in my signature) - if you want to type ! you'd have to press an FN key to change a letter to 1 and a shift key. Alternately you can tick "with mods: shift" on the FN and then you only have to press FN and the key. Another slightly strange usage was justinyhuang's request of Ctrl+F1=backlight earlier on this page.
It's a very handy feature if you need it but on a big board like your QFR you probably don't :)
-
The with mods option also lets you assign individual keys as copy, paste, or parentheses without using the macro functions.
-
I used this to program a Phantom today. Easiest setup I've ever done (granted the Phantom isn't that difficult). Thanks for making this available. :thumb:
-
TIFU...
20150516 on a Phantom on Windows 10. Soldered Teensy and tested by shorting with a paperclip, everything registers fine.
I go and solder switches in. Basically every key will send the keypress infinity times. (Press g once, get gggggggggggggggggggg) the exceptions are 5,9, d and f, which all work correctly.
Did I solder something wrong? Is there a setting I can change somehow to fix all this? Anyone's help would be greatly appreciated.
-
TIFU...
20150516 on a Phantom on Windows 10. Soldered Teensy and tested by shorting with a paperclip, everything registers fine.
I go and solder switches in. Basically every key will send the keypress infinity times. (Press g once, get gggggggggggggggggggg) the exceptions are 5,9, d and f, which all work correctly.
Did I solder something wrong? Is there a setting I can change somehow to fix all this? Anyone's help would be greatly appreciated.
If you want someone to check your soldering they're going to need pics :)
-
Sorry something was wrong with the switches. Things are much better now
-
silly quick question (a quick search did not turn up anything)..did you get to implement switching rows and columns in software to compensate for diode direction with the handwired keyboard? Thanks
-
thank you so much! very god :thumb: :thumb: :thumb: :thumb:
-
Just wanted to say thanks for this firmware.
Just got a frosty flake and have been having some fun.
I'm new to the programmable keyboard thing, but so far the one bit I'm unsure is what is the "With Mods" section about?
So far I've just done light stuff like put a numpad on the right half of my QFR and mouse controls on arrows keys, etc.
Also I've had a few occasions where the letter H is either coming out twice, or will come out 2-3 characters later.
For instance , efghijhklm. Tweak the debounce? Anyone happen to know what the default is on a QFR as it was fine for the 5 months I had it before playing with this.
My QFR does the same thing, I'm assuming it's something related to debounce as you've mentioned. I only started noticing it in the later releases of the FW. Maybe only the latest specifically, I can say that the older versions didn't exhibit this behavior, but I didn't update everytime there was a new release so I don't know when it started aside from the last release.
So far still getting it. I think default was 6ms. I was up to 40. Just raised it to 75 to see if that helps.
Very awkward getting spaces randomly in stuff in addition to repeated chars 1-3 chars later.
Anyone know the default value for a QFR? Default for Easy AVR USB was 6ms I think, but I dont have anything to compare against. What if a QFR is defaulted at 140ms? big difference.
-
Just wanted to say thanks for this firmware.
Just got a frosty flake and have been having some fun.
I'm new to the programmable keyboard thing, but so far the one bit I'm unsure is what is the "With Mods" section about?
So far I've just done light stuff like put a numpad on the right half of my QFR and mouse controls on arrows keys, etc.
Also I've had a few occasions where the letter H is either coming out twice, or will come out 2-3 characters later.
For instance , efghijhklm. Tweak the debounce? Anyone happen to know what the default is on a QFR as it was fine for the 5 months I had it before playing with this.
My QFR does the same thing, I'm assuming it's something related to debounce as you've mentioned. I only started noticing it in the later releases of the FW. Maybe only the latest specifically, I can say that the older versions didn't exhibit this behavior, but I didn't update everytime there was a new release so I don't know when it started aside from the last release.
So far still getting it. I think default was 6ms. I was up to 40. Just raised it to 75 to see if that helps.
Very awkward getting spaces randomly in stuff in addition to repeated chars 1-3 chars later.
Anyone know the default value for a QFR? Default for Easy AVR USB was 6ms I think, but I dont have anything to compare against. What if a QFR is defaulted at 140ms? big difference.
The main thing that makes a QFR a QFR is the controller and you've replaced that. What's left is just a switch matrix and some cherry switches which are essentially the same across all boards so this seems a bit strange.
I have attached standard ANSI firmwares for the Frosty Flake (not V2) built from the 20150420 and 20150516 versions I have saved, the only change I made was setting boot mode on right ctrl and Esc. Do either/both of these work correctly? If you can find which release it went wrong in metaliqaz has more chance of working out what he changed that caused the issue :)
-
Just wanted to say thanks for this firmware.
Just got a frosty flake and have been having some fun.
I'm new to the programmable keyboard thing, but so far the one bit I'm unsure is what is the "With Mods" section about?
So far I've just done light stuff like put a numpad on the right half of my QFR and mouse controls on arrows keys, etc.
Also I've had a few occasions where the letter H is either coming out twice, or will come out 2-3 characters later.
For instance , efghijhklm. Tweak the debounce? Anyone happen to know what the default is on a QFR as it was fine for the 5 months I had it before playing with this.
My QFR does the same thing, I'm assuming it's something related to debounce as you've mentioned. I only started noticing it in the later releases of the FW. Maybe only the latest specifically, I can say that the older versions didn't exhibit this behavior, but I didn't update everytime there was a new release so I don't know when it started aside from the last release.
So far still getting it. I think default was 6ms. I was up to 40. Just raised it to 75 to see if that helps.
Very awkward getting spaces randomly in stuff in addition to repeated chars 1-3 chars later.
Anyone know the default value for a QFR? Default for Easy AVR USB was 6ms I think, but I dont have anything to compare against. What if a QFR is defaulted at 140ms? big difference.
The main thing that makes a QFR a QFR is the controller and you've replaced that. What's left is just a switch matrix and some cherry switches which are essentially the same across all boards so this seems a bit strange.
I have attached standard ANSI firmwares for the Frosty Flake (not V2) built from the 20150420 and 20150516 versions I have saved, the only change I made was setting boot mode on right ctrl and Esc. Do either/both of these work correctly? If you can find which release it went wrong in metaliqaz has more chance of working out what he changed that caused the issue :)
Bricked! Didn't read the fine print, I have a V2. Had to pop it open and short the boot mode points.
So far with debounce at 75 it has drastically dropped. It seems space bar is the one doing it most.
99 is max, so I just set it to that and see how often it happens.
Slightly annoying as I started doing some work on Cisco switches and sometimes the command line doesnt show what you type for security and I can't tell if I'm genuinely typing wrong or its sticking extras in there.
Edit: Ahh ok, now I see I can't spam spacebar and backspace, as it's dropping them.
Ungh. I'm going to see if it does it with with the default frosty flake hex.
I've attached the dat of the hex im currently using in case theres something odd in it.
-
Edit: Ahh ok, now I see I can't spam spacebar and backspace, as it's dropping them.
Ungh. I'm going to see if it does it with with the default frosty flake hex.
I've attached the dat of the hex im currently using in case theres something odd in it.
Please find attached your .dat built with the old versions - I hope one of them works as your problem sounds rather frustrating!
-
Edit: Ahh ok, now I see I can't spam spacebar and backspace, as it's dropping them.
Ungh. I'm going to see if it does it with with the default frosty flake hex.
I've attached the dat of the hex im currently using in case theres something odd in it.
Please find attached your .dat built with the old versions - I hope one of them works as your problem sounds rather frustrating!
Trying this now. Just wondering what other users preferred method is.
Once its in boot mode, you cant use the keyboard. Do you plug in a secondary keyboard?
I made a batch file that erases and flashes a.hex, so i just name the one I want to a.hex first, run it, then run another batch to reload the keyboard.
I tried to make a drag and drop the hex onto the batch file, but bricked mine. I'll revisit it later.
Im on the 0516 version now. I checked the debounce timing and still on 50 which was what I last set it to. I'm guessing these are independent from the hex files. I've set it back to 6ms for now.
-
If not using a Teensy with the helpful GUI to click I copy a return to the clipboard, type the flash command (I've never done an erase...) then paste the return to set it off :thumb:
-
Hello, currently trying to build a hand wired Planck. First I had accidentally wired my diodes in the wrong direction, after a lengthy fix that was corrected and for the most part things are working.
I'm still having a problem though, specifically with column 9; any key on column 9 will activate multiple keys, basically all keys to the left. for example if I try to press the O (column 9, row 0) key it will not only activate O, but the i u t r e w q esc keys as well.
In order to ensure that my wiring was not a problem I tested things out by shorting the two corresponding pins on my Teensy and it had the same behavior, even after removing the wire leading to column 9.
To ensure that the specific pin that I was using for column 9 was not at fault I assigned column 9 to another pin and the exact same issue still occurs.
Current matrix and layout attached.
It's only column 9, all other columns work fine. After inspecting the Teensy and my matrix I don't see any shorts or bad joints.
Thank you for any advice.
-
It's impossible to verify your .cfg file without a pic of the wiring, but as it nearly works and the problem happens on two different pins it sounds like you have a short (but you checked) or a diode wired backwards. But that should only affect one row? :confused:
A pic would be very helpful to better guess what's going on :)
-
I really think that there might be something wrong with my teensy.
I had it working for a while (with tmk firmware), but then it ****ed up again.
I'm just going to get another teensy and also replace the lead wires from the columns at a later date.
I made several posts about this and there are some pictures linked there, but unless you feel like it, don't bother (for now) I'll **** with it at a late time:
https://geekhack.org/index.php?topic=75103.msg1864212#msg1864212
https://www.reddit.com/r/olkb/comments/3kubfo/issues_with_a_column_on_a_handwired_planck/
-
Edit: Ahh ok, now I see I can't spam spacebar and backspace, as it's dropping them.
Ungh. I'm going to see if it does it with with the default frosty flake hex.
I've attached the dat of the hex im currently using in case theres something odd in it.
Please find attached your .dat built with the old versions - I hope one of them works as your problem sounds rather frustrating!
Both of those still seemed to have the delayed double hits. Usually within an hour I'd notice a few.
I contacted Bpiphany and he gave me his default hex that ships with it and so far all day yesterday I hadnt hit a single issue.
Sadly I just dont have any of the custom bits I did as it is pretty much stock.
Ill look into TMK then, not sure how to create or compile it but always willing to learn something new.
Edit: to confirm it wasnt a fluke I tried your hexes again. Both in under 10 mins I had a bunch of doubled up letters.
Went back to Bpiphany stock and seems fine again.
-
Hello, currently trying to build a hand wired Planck. First I had accidentally wired my diodes in the wrong direction, after a lengthy fix that was corrected and for the most part things are working.
I'm still having a problem though, specifically with column 9; any key on column 9 will activate multiple keys, basically all keys to the left. for example if I try to press the O (column 9, row 0) key it will not only activate O, but the i u t r e w q esc keys as well.
In order to ensure that my wiring was not a problem I tested things out by shorting the two corresponding pins on my Teensy and it had the same behavior, even after removing the wire leading to column 9.
To ensure that the specific pin that I was using for column 9 was not at fault I assigned column 9 to another pin and the exact same issue still occurs.
Current matrix and layout attached.
It's only column 9, all other columns work fine. After inspecting the Teensy and my matrix I don't see any shorts or bad joints.
Thank you for any advice.
I just tried to load your layout to build but it said it was invalid in 20150625 - are you using the latest stable version rather than the beta version? It's possible your issue is fixed in the beta so you might like to try that before getting your soldering iron out again, I'd guess it would be quicker!
-
Nope, using the latest stable version (12) 20150516.
I'm able to build firmware on my PC without issue, the layout that I linked before might be old or something but here is a re-upload just in case.
I just tried to load your layout to build but it said it was invalid in 20150625 - are you using the latest stable version rather than the beta version? It's possible your issue is fixed in the beta so you might like to try that before getting your soldering iron out again, I'd guess it would be quicker!
-
Update, I did something that should confirm that my Teensy is ****, I tried to keep things as simple as possible.
(http://i.imgur.com/NabegdS.jpg)
Those four wires represent the four rows on my keyboard, shorting any of those pins with the pin defined to column 9 gives me the same issue.
So it looks like it's definitely the Teensy, ****.
-
But it's the same if you move column 9 to a different pin? That doesn't make much sense to me.
Before condemning it I would try every available pin as column 9 - perhaps unluckily both the ones you tried are broken? The rest of it works and looks like you have some pins that have never been used, unless you've done some amazingly clean desoldering...
That or try moving column 9 to column 12 (or any higher than you've used) in the config to rule out software bugs. The handwire is a new feature so I would have to recommend you try on the beta, sometimes it doesn't work at all which is why it's small and untempting in the OP, but the current version does :)
-
Was wondering if you guys could help me out. I reset my GHPad to change the firmware on it. I used the default GHPad layout on the AVR program with just added media keys on the FN layer and then flashed it to the ATMega32U4 but for some reason it's not working. I'm almost positive this is exactly how I did it the first time around so I'm not sure why it wouldn't be working now. Any ideas?
-
But it's the same if you move column 9 to a different pin? That doesn't make much sense to me.
Before condemning it I would try every available pin as column 9 - perhaps unluckily both the ones you tried are broken? The rest of it works and looks like you have some pins that have never been used, unless you've done some amazingly clean desoldering...
That or try moving column 9 to column 12 (or any higher than you've used) in the config to rule out software bugs. The handwire is a new feature so I would have to recommend you try on the beta, sometimes it doesn't work at all which is why it's small and untempting in the OP, but the current version does :)
I had almost the same problem with my preonic at a different location.
The error occurs with column 8 and pin B6. This was also a LED0 definition. LED0 and LED1 was removed in the first run.
I went to hardware config and tried LED0 = NA. That gave and error So I defined LED0 to an unused pin number like this:
[MATRIX]
ROW0=B5
ROW1=B4
ROW2=E6
ROW3=D7
ROW4=C6
COL1=F4
COL2=F5
COL3=F6
COL4=F7
COL5=B1
COL6=B3
COL7=B2
COL8=B6
COL9=D3
COL10=D2
COL11=D1
COL12=D0
LED0=D4
LED1=B7
And now it works perfectly :). I would give it a try by changing the port number of the two leds.
TMK has the same problem see link below:
https://www.reddit.com/r/MechanicalKeyboards/comments/3m1yxr/guide_solved_tmk_firmware_caps_lock_causing/ (https://www.reddit.com/r/MechanicalKeyboards/comments/3m1yxr/guide_solved_tmk_firmware_caps_lock_causing/)
-
This might be asking a lot, I'm not sure. Any chance you could adapt this to the Ortholinear Atomic PCB? I see Planck PCB support but not Atomic. :-[
-
This might be asking a lot, I'm not sure. Any chance you could adapt this to the Ortholinear Atomic PCB? I see Planck PCB support but not Atomic. :-[
I'm sure it will be added but in the mean time you can use this and configure it as a "handwire" :thumb:
Regarding the Atomic...
If the have a pcb for sale, ill add easier support. If they just sell teensy kits, handwire is most appropriate, i think
Atomic kits with the PCB are for sale and will be shipping in mid-September. Jack has posted the Matrix.c.
https://github.com/jackhumbert/tmk_keyboard/blob/master/keyboard/atomic/matrix.c
//
// Atomic PCB Rev 0 Pin Assignments
//
// Column: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
// Pin: F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1
//
//
// Atomic PCB Rev 0 Pin Assignments
//
// Row: 0, 1, 2, 3, 4
// Pin: D0, D5, B5, B6, C6
//
Backlighting is just like the Planck PCB: on B7
To tide me over, I made some handwire layouts for the grid, MIT, and MIT + various 2U keys.
More
[1 - Grid]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
[2 - MIT]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
# Make 2U Spacebar
MAKE_KEY(4, 5, 8, 4)
MAKE_SPACER(4, 6, 0)
[3 - MIT + 2U BKSP]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
# Make 2U Spacebar
MAKE_KEY(4, 5, 8, 4)
MAKE_SPACER(4, 6, 0)
# Make 2U Backspace
MAKE_KEY(0, 13, 8, 4)
MAKE_SPACER(0, 14, 0)
[4 - MIT + 2U ALL]
# Remove Column 16
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# Remove Column 15
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
# Remove Row 5
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
# Make 2U Spacebar
MAKE_KEY(4, 5, 8, 4)
MAKE_SPACER(4, 6, 0)
# Make 2U Backspace
MAKE_KEY(0, 13, 8, 4)
MAKE_SPACER(0, 14, 0)
# Make 2U RShift
MAKE_KEY(3, 11, 8, 4)
MAKE_SPACER(3, 12, 0)
# Make 2U Enter
MAKE_KEY(2, 12, 8, 4)
MAKE_SPACER(2, 13, 0)
-
Edit: Ahh ok, now I see I can't spam spacebar and backspace, as it's dropping them.
Ungh. I'm going to see if it does it with with the default frosty flake hex.
I've attached the dat of the hex im currently using in case theres something odd in it.
Please find attached your .dat built with the old versions - I hope one of them works as your problem sounds rather frustrating!
Both of those still seemed to have the delayed double hits. Usually within an hour I'd notice a few.
I contacted Bpiphany and he gave me his default hex that ships with it and so far all day yesterday I hadnt hit a single issue.
Sadly I just dont have any of the custom bits I did as it is pretty much stock.
Ill look into TMK then, not sure how to create or compile it but always willing to learn something new.
Edit: to confirm it wasnt a fluke I tried your hexes again. Both in under 10 mins I had a bunch of doubled up letters.
Went back to Bpiphany stock and seems fine again.
I hate to hassle but anyone have any other ideas?
I've tried creating the Hex in 20150625, 20150516 and 20150326 and same behavior. Stock firmware is good so something is missing here.
I tried the oldest one in the post, 20140403 but that looks like it was right before v2 of Frosty flake came out.
I looked at TMK briefly but that seems it will require a bit of research and work for me to get it remotely working. Also an app suggested in a tutorial broke my PC's environment settings so I had to redo for command prompt to work on several apps.
-
I hate to hassle but anyone have any other ideas?
I've tried creating the Hex in 20150625, 20150516 and 20150326 and same behavior. Stock firmware is good so something is missing here.
I tried the oldest one in the post, 20140403 but that looks like it was right before v2 of Frosty flake came out.
I looked at TMK briefly but that seems it will require a bit of research and work for me to get it remotely working. Also an app suggested in a tutorial broke my PC's environment settings so I had to redo for command prompt to work on several apps.
No new ideas, but I found a copy of 20150215 which has the FFv2, no harm in trying. It loaded your .dat but refused to build it so I've had to remake your layers - hopefully it's all right but should be good enough for a test at least.
-
It looks like this is missing layers, and/or Fn+ESC which I had for boot mode isn't working nor is left+right shift which was default for FFv2.
I'll leave this one in the meantime and see if I get those doubles in the meantime.
Also can you provide a link to that version and the .dat you made?
-
I can, but from the sounds of it you're in windows so it won't be of any use to you. Having gone through the layouts seems I missed one rather important change - the FN key on the default layer! :-[
This link (https://www.sendspace.com/file/zvhddy) has the .dat and a new .hex with the FN key restored even if the rest is useless to you.
-
I can, but from the sounds of it you're in windows so it won't be of any use to you. Having gone through the layouts seems I missed one rather important change - the FN key on the default layer! :-[
This link (https://www.sendspace.com/file/zvhddy) has the .dat and a new .hex with the FN key restored even if the rest is useless to you.
Yes I'm on windowos. 7 at work, 10 at home.
And it would seem this one is still shady as I had that double o in windows.
I guess I'll need to dig in and try TMK. It seems it'll need a bit more work on my part to get working. But if it works..
-
If anyone wants to help get this working (handwired method) with the KC60, I'd appreciate the help, but right now no matter what I compile for it...doesn't work.
Files are attached at the bottom and pasted in here for your viewing pleasure.
[KC60]
ROW0=D0
ROW1=D1
ROW2=F6
ROW3=F7
ROW4=D5
ROW5=NA
COL0=F0
COL1=F1
COL2=E6
COL3=C7
COL4=C6
COL5=B7
COL6=D4
COL7=B1
COL8=B0
COL9=B5
COL10=B4
COL11=D7
COL12=D6
COL13=B3
COL14=NA
COL15=NA
COL16=NA
COL17=NA
LED0=B6
LED1=B2
LED2=NA
LED3=NA
Andddd
[Example]
# The example will be a 60% layout
# 60% uses only 14 columns of the 17, so get rid of 2 leftmost and 2 rightmost
# note that this would be a result of ROW0=NA, ROW1=NA, COL16=NA, COL17=NA
# in handwire_hardware.cfg
MAKE_SPACER(0, 14, 0)
MAKE_SPACER(1, 14, 0)
MAKE_SPACER(2, 14, 0)
MAKE_SPACER(3, 14, 0)
MAKE_SPACER(4, 14, 0)
MAKE_SPACER(5, 14, 0)
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
MAKE_SPACER(0, 17, 0)
MAKE_SPACER(1, 17, 0)
MAKE_SPACER(2, 17, 0)
MAKE_SPACER(3, 17, 0)
MAKE_SPACER(4, 17, 0)
MAKE_SPACER(5, 17, 0)
# 60% uses only 5 columns of the 6, so get rid of the last row
# note that this would be a result of COL5=NA in handwire_hardware.cfg
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
# make the backspace
MAKE_KEY(0, 13, 8, 4)
# make the tab
MAKE_KEY(1, 0, 6, 4)
# make the backslash
MAKE_KEY(1, 13, 6, 4)
# make the capslock
MAKE_KEY(2, 0, 7, 4)
# make the enter
MAKE_SPACER(2, 12, 0)
MAKE_KEY(2, 13, 9, 4)
# make left shift
MAKE_KEY(3, 0, 9, 4)
MAKE_SPACER(3, 1, 0)
# make right shift
MAKE_KEY(3, 12, 11, 4)
MAKE_SPACER(3, 13, 0)
# make bottom row
MAKE_KEY(4, 0, 5, 4)
MAKE_KEY(4, 1, 5, 4)
MAKE_KEY(4, 2, 5, 4)
MAKE_SPACER(4, 3, 0)
MAKE_SPACER(4, 4, 0)
MAKE_SPACER(4, 5, 0)
MAKE_KEY(4, 6, 25, 4)
MAKE_SPACER(4, 7, 0)
MAKE_SPACER(4, 8, 0)
MAKE_SPACER(4, 9, 0)
MAKE_KEY(4, 10, 5, 4)
MAKE_KEY(4, 11, 5, 4)
MAKE_KEY(4, 12, 5, 4)
MAKE_KEY(4, 13, 5, 4)
I pulled the matrix from https://github.com/jichuntao/tmk_keyboard
-
I'd also be super interested in a solution for the KC60. I'm more than happy to help test out builds and help debug new firmware.
-
I'd also be super interested in a solution for the KC60. I'm more than happy to help test out builds and help debug new firmware.
I keep trying it in different ways/combinations to see if it's something I missed, but it's just not working...Once Metalliqaz comes back from hiatus I'm sure he'll be of some guidance. The keyboard gets recognized, but none of the keys work.
-
I keep trying it in different ways/combinations to see if it's something I missed, but it's just not working...Once Metalliqaz comes back from hiatus I'm sure he'll be of some guidance. The keyboard gets recognized, but none of the keys work.
I'm pretty sure it's because of the way it is wired. The rows/columns are swapped. You would need to reverse the direction of all the diodes.
As an experiment try making a 5x5 keyboard using only the left half of the matrix and swap rows/cols. You should get output. Take the pins for col 0-4 and put those as rows and take the row pins and make them col 0-4.
-
I keep trying it in different ways/combinations to see if it's something I missed, but it's just not working...Once Metalliqaz comes back from hiatus I'm sure he'll be of some guidance. The keyboard gets recognized, but none of the keys work.
I'm pretty sure it's because of the way it is wired. The rows/columns are swapped. You would need to reverse the direction of all the diodes.
As an experiment try making a 5x5 keyboard using only the left half of the matrix and swap rows/cols. You should get output. Take the pins for col 0-4 and put those as rows and take the row pins and make them col 0-4.
But...ok, well you're right. But how? I mean, how can you just tell that by looking at the pinout?
Also, does this mean that it can't ever be used for this keyboard?
-
But...ok, well you're right. But how? I mean, how can you just tell that by looking at the pinout?
Also, does this mean that it can't ever be used for this keyboard?
I have a KC60 in front of me (finally). The TMK firmware you linked to also describes the way the matrix is scanned.
The Planck PCB is wired the same way, so there is no technical reason it can't be done. It's just the handwire layout that is setup to work this way. He could make another version of handwire that scans the matrix the opposite way.
-
But...ok, well you're right. But how? I mean, how can you just tell that by looking at the pinout?
Also, does this mean that it can't ever be used for this keyboard?
I have a KC60 in front of me (finally). The TMK firmware you linked to also describes the way the matrix is scanned.
The Planck PCB is wired the same way, so there is no technical reason it can't be done. It's just the handwire layout that is setup to work this way. He could make another version of handwire that scans the matrix the opposite way.
Ah, Gotcha. I was gonna say man, I mean, I kinda get the gist of the matrix, but I thought you just looked at the pinout and were like "Dude, that's obviously backwards"...haha. Fair enough, meanwhile I'll fiddle around with TMK, see what kinda magic-ry I could do.
-
Ah, Gotcha. I was gonna say man, I mean, I kinda get the gist of the matrix, but I thought you just looked at the pinout and were like "Dude, that's obviously backwards"...haha. Fair enough, meanwhile I'll fiddle around with TMK, see what kinda magic-ry I could do.
Also a GH60 owner and very keen to get this working - would love to help in any way I can.
edit// can we use the handwire.cfg to get started?
-
Hello, I'm looking to get this running on my Octagon. I loaded up Easy AVR, set a base config with a boot and config key and it seemed to flash ok. The issue is when I hook it up to the computer it comes up as 'Unknown USB Device (Device Descriptor Request Failed)' on Win10 and 'Unknown Device' on Win7. I can flash back to the layout I made with the 02D mapper and the keyboard works again.
-
Can we get some love for Hasu's PCB (https://geekhack.org/index.php?topic=69666.0)? It uses an ATMega32U2, just like the supported Costar replacement controllers made by bpiphany.
-
Can we get some love for Hasu's PCB (https://geekhack.org/index.php?topic=69666.0)? It uses an ATMega32U2, just like the supported Costar replacement controllers made by bpiphany.
If the diodes are the right way round (I'm not sure how to tell) you can set it up as a handwire using the matrix info found here (https://github.com/tmk/tmk_keyboard/blob/master/keyboard/alps64/matrix.c) but the only person who can add it to the official list is metalliqaz, and he's not been around lately.
edit: The diodes are the wrong way, won't work unless metalliqaz comes back and changes everything.
-
Can we get some love for Hasu's PCB (https://geekhack.org/index.php?topic=69666.0)? It uses an ATMega32U2, just like the supported Costar replacement controllers made by bpiphany.
If the diodes are the right way round (I'm not sure how to tell) you can set it up as a handwire using the matrix info found here (https://github.com/tmk/tmk_keyboard/blob/master/keyboard/alps64/matrix.c) but the only person who can add it to the official list is metalliqaz, and he's not been around lately.
Oh, i didn't know that metalliqaz is MIA, but yeah, i was thinking hand-wire as well, but would be nice from metalliqaz to add it if he finds the time, if not (and mine arrives probably in 2016) i will post my config :)
-
If the diodes are the right way round (I'm not sure how to tell) you can set it up as a handwire using the matrix info found here (https://github.com/tmk/tmk_keyboard/blob/master/keyboard/alps64/matrix.c) but the only person who can add it to the official list is metalliqaz, and he's not been around lately.
Diodes are the wrong way for handwire. He also used a 8x8 matrix so will not fit on the handwire matrix.
-
If the diodes are the right way round (I'm not sure how to tell) you can set it up as a handwire using the matrix info found here (https://github.com/tmk/tmk_keyboard/blob/master/keyboard/alps64/matrix.c) but the only person who can add it to the official list is metalliqaz, and he's not been around lately.
Diodes are the wrong way for handwire.
Thanks for confirming, even if it is bad news.
-
If the diodes are the right way round (I'm not sure how to tell) you can set it up as a handwire using the matrix info found here (https://github.com/tmk/tmk_keyboard/blob/master/keyboard/alps64/matrix.c) but the only person who can add it to the official list is metalliqaz, and he's not been around lately.
Diodes are the wrong way for handwire. He also used a 8x8 matrix so will not fit on the handwire matrix.
I'm not sure what do you mean by they are the wrong way for handwire... could you please elaborate?
-
If the diodes are the right way round (I'm not sure how to tell) you can set it up as a handwire using the matrix info found here (https://github.com/tmk/tmk_keyboard/blob/master/keyboard/alps64/matrix.c) but the only person who can add it to the official list is metalliqaz, and he's not been around lately.
Diodes are the wrong way for handwire. He also used a 8x8 matrix so will not fit on the handwire matrix.
I'm not sure what do you mean by they are the wrong way for handwire... could you please elaborate?
Diodes allow current to flow one way, in a keyboard switch matrix that means either from rows to columns or columns to rows.
The EasyAVR handwire option is set up to work with them set to rows to columns so if the PCB is designed the other way, as this one is, it won't work.
-
If the diodes are the right way round (I'm not sure how to tell) you can set it up as a handwire using the matrix info found here (https://github.com/tmk/tmk_keyboard/blob/master/keyboard/alps64/matrix.c) but the only person who can add it to the official list is metalliqaz, and he's not been around lately.
Diodes are the wrong way for handwire. He also used a 8x8 matrix so will not fit on the handwire matrix.
I'm not sure what do you mean by they are the wrong way for handwire... could you please elaborate?
Diodes allow current to flow one way, in a keyboard switch matrix that means either from rows to columns or columns to rows.
The EasyAVR handwire option is set up to work with them set to rows to columns so if the PCB is designed the other way, as this one is, it won't work.
Ah man, just checked and indeed your right on both accounts. (thanks for the time you took to check it) Oh well, I hope we can persuade metalliqaz somehow to support this PCB, or atleast to add column to row option in the hand-wire section as well.
-
Will this work with hasu's alps pcb?
-
Will this work with hasu's alps pcb?
Nope, it won't work, check my post directly above yours to see why. Maybe we could persuade metalliqaz nicely somehow to add support for it (remember he owes us nothing) by sending him cakes? :D
-
I apologize, my laziness got the best of me, for not reading it. •_•
-
I can, but from the sounds of it you're in windows so it won't be of any use to you. Having gone through the layouts seems I missed one rather important change - the FN key on the default layer! :-[
This link (https://www.sendspace.com/file/zvhddy) has the .dat and a new .hex with the FN key restored even if the rest is useless to you.
Yes I'm on windowos. 7 at work, 10 at home.
And it would seem this one is still shady as I had that double o in windows.
I guess I'll need to dig in and try TMK. It seems it'll need a bit more work on my part to get working. But if it works..
Just an update. I managed to configure TMK to how I wanted it minus the bells and whistles(leds and macros)
Definitely more work than using Easy AVR but its been 2 days now and no crazy random typos all over.
Such a shame as I really liked the simplicity of this gui.
-
Just an update. I managed to configure TMK to how I wanted it minus the bells and whistles(leds and macros)
Definitely more work than using Easy AVR but its been 2 days now and no crazy random typos all over.
Such a shame as I really liked the simplicity of this gui.
Glad to hear you got it working and I hope you manage to add the bells and whistles now you know it does :)
-
Hoping this is the correct place to ask this:Using the Easy AVR USB Keyboard Firmware and Keymapper program with my planck, is there a way to add more than 14 macros within the program? I googled but didn't find anything :(
-
This is the place, but 14 is the most you're allowed due to memory restrictions. What are you trying to do that needs more?
-
Yo guys. I'm probably missing a fundamental Matrix setup deal but I could use a bit of help.
In short I have two separate 4 button membrane switches to get a total of 8 buttons.
On a teensy 2.0:
The 1st switch is wired to: B0, B1, B2, B3, B7(power)
The 2nd switch is wired to: C6, D3, D2, D1, D0(power)
I'm using EASYAVR handwire. I can't find a cfg setup to get all 8 buttons working. I can get 6 by excluding using D2,D3, D6, and D0(2nd switch power) if I use this:
[MATRIX]
ROW0=B0
ROW1=B1
ROW2=B2
ROW3=B3
ROW4=D1
ROW5=D2
COL0=B7
If I try to increment the rest on COLS weird things happen like posting a whole row when button pressed, etc.
Could anyone correct my cfg? (I get a sneaking suspicion I'm supposed to solder the two power wires together and then to one pin only or something, but that's a wild guess from a newbie.) Thanks for any help~
-
Yo guys. I'm probably missing a fundamental Matrix setup deal but I could use a bit of help.
In short I have two separate 4 button membrane switches to get a total of 8 buttons.
On a teensy 2.0:
The 1st switch is wired to: B0, B1, B2, B3, B7(power)
The 2nd switch is wired to: C6, D3, D2, D1, D0(power)
I'm using EASYAVR handwire. I can't find a cfg setup to get all 8 buttons working. I can get 6 by excluding using D2,D3, D6, and D0(2nd switch power) if I use this:
[MATRIX]
ROW0=B0
ROW1=B1
ROW2=B2
ROW3=B3
ROW4=D1
ROW5=D2
COL0=B7
If I try to increment the rest on COLS weird things happen like posting a whole row when button pressed, etc.
Could anyone correct my cfg? (I get a sneaking suspicion I'm supposed to solder the two power wires together and then to one pin only or something, but that's a wild guess from a newbie.) Thanks for any help~
This sounds familiar - glad you like it enough to expand!
You're right that the easiest way to do this is to put both "power" wires on the same pin - I'll go for B7. The step you're missing is that there is a 6 row limit so to add more switches you need to swap the rows and columns so the config for this would be something like this:
ROW0=B7
COL0=B0
COL1=B1
COL2=B2
COL3=B3
COL4=D1
COL5=D2
COL6=D3
COL7=C6
You may want to re-order them so they make more sense physically...
Did I miss the pics or is this still a work in progress? :)
-
This sounds familiar - glad you like it enough to expand!
You're right that the easiest way to do this is to put both "power" wires on the same pin - I'll go for B7. The step you're missing is that there is a 6 row limit so to add more switches you need to swap the rows and columns so the config for this would be something like this:
ROW0=B7
COL0=B0
COL1=B1
COL2=B2
COL3=B3
COL4=D1
COL5=D2
COL6=D3
COL7=C6
You may want to re-order them so they make more sense physically...
Did I miss the pics or is this still a work in progress? :)
Woo! logically I thought so, I just wanted to be sure before soldering more. Thanks!
Also I don't know if you saw, I posted a youtube tutorial I made in that original thread for the not so techie: https://geekhack.org/index.php?topic=75287.0 on which you are credited.
Read on there to see the next crazy ambitious step I want to take! I also ordered a teensy 3.2~ :v
-
Read on there to see the next crazy ambitious step I want to take! I also ordered a teensy 3.2~ :v
Easy AVR is not compatible with Teensy 3.2
-
Read on there to see the next crazy ambitious step I want to take! I also ordered a teensy 3.2~ :v
Easy AVR is not compatible with Teensy 3.2
I won't be using EasyAVR for that one. With where this is going it's probably going to need full coded with Teensydurino
-
You may want to re-order them so they make more sense physically...
Hmm, I soldered the two powers together then into the B7 pin, used the column and now it's throwing text wildly with every press and sometimes on its own :-X
-
Also I don't know if you saw, I posted a youtube tutorial I made in that original thread for the not so techie: https://geekhack.org/index.php?topic=75287.0 on which you are credited.
Read on there to see the next crazy ambitious step I want to take! I also ordered a teensy 3.2~ :v
I hadn't seen that video - good work! If someone can't follow that they shouldn't be allowed a soldering iron :)) Oh and thanks for the credit!
You might want to move your other thread into this section as this is where the DIY people hang out so you're more likely to get helpful replies - just "report to moderator" on the first post and write a friendly note if you want to. I like where you're going but it's not going to be anywhere near as easy as this was...
-
Also I don't know if you saw, I posted a youtube tutorial I made in that original thread for the not so techie: https://geekhack.org/index.php?topic=75287.0 on which you are credited.
Read on there to see the next crazy ambitious step I want to take! I also ordered a teensy 3.2~ :v
I hadn't seen that video - good work! If someone can't follow that they shouldn't be allowed a soldering iron :)) Oh and thanks for the credit!
You might want to move your other thread into this section as this is where the DIY people hang out so you're more likely to get helpful replies - just "report to moderator" on the first post and write a friendly note if you want to. I like where you're going but it's not going to be anywhere near as easy as this was...
I will request a move and Thanks! And yeah full disclosure, for the next part my plan is to map it all out and the outsource the code. From there I can reverse engineer to learn it as things click way better with me that way.
Soooo uh yeah besides that, any idea why the power lines soldered to B7 would be blasting text to the screen like wild? XD I soldered one wire to the other, then the longer wire to B7 and it has gone insane
-
You may want to re-order them so they make more sense physically...
Hmm, I soldered the two powers together then into the B7 pin, used the column and now it's throwing text wildly with every press and sometimes on its own :-X
If it's "typing" on it's own that sounds like you have a short, though that should only spam one key...
Not sure what you mean by "using the column" but I hope you realise you now need to assign the keys along the top row in the editor rather than down the side?
-
You may want to re-order them so they make more sense physically...
Hmm, I soldered the two powers together then into the B7 pin, used the column and now it's throwing text wildly with every press and sometimes on its own :-X
If it's "typing" on it's own that sounds like you have a short, though that should only spam one key...
Not sure what you mean by "using the column" but I hope you realise you now need to assign the keys along the top row in the editor rather than down the side?
Aye I get that it will go along the top, I actually loaded a test hex to the teesny with that. And yeah it's spamming all 8 keys I mapped. When I set it down sometimes it stops. If I touch it again it's definately reactive to that. Also when I press the buttons, some blast lines of text, others just one letter like they are supposed to :))
-
The movement sensitive thing still sounds like a short between two pins but that can't be it. This is surprisingly hard to diagnose remotely!
Is one set of buttons working and the other not, or is it a random button (or two) on each set playing up? Which pin(s) are the dodgy button(s) on?
Also if you connected two pins that were live you might have damaged them, but I'm pretty sure it's the "rows" that are live so you connecting two columns earlier shouldn't have done anything. Although as you have no diodes (don't need them if it's wired correctly) perhaps you did - it's getting late and my brain can't work it out :(
You should have enough pins to be able to switch to alternatives if you have damaged some, but for now try disconnecting the bad ones and see if strange things still happen.
-
The movement sensitive thing still sounds like a short between two pins but that can't be it. This is surprisingly hard to diagnose remotely!
Is one set of buttons working and the other not, or is it a random button (or two) on each set playing up? Which pin(s) are the dodgy button(s) on?
Also if you connected two pins that were live you might have damaged them, but I'm pretty sure it's the "rows" that are live so you connecting two columns earlier shouldn't have done anything. Although as you have no diodes (don't need them if it's wired correctly) perhaps you did - it's getting late and my brain can't work it out :(
You should have enough pins to be able to switch to alternatives if you have damaged some, but for now try disconnecting the bad ones and see if strange things still happen.
I've resoldered the power to D0 and left the other pins be. Trying the column matrix (with D0 set correctly) the first 5 buttons diddn't work. I tried the old hex where 6 buttons work and the 6 buttons all spout off two letters.... XD
Edit: Resoldered power lines to C7 too, same result. Every button in rows entering double
-
Have you tried only including the new switch set's pins in the 1 column config that worked perfectly? No need to disconnect the other switches, just leave them out of the config. This is just to check that the new switches aren't faulty (much like the short I don't see how a faulty switch could cause what you're seeing but it's good to be sure!)
Next thought, is it an EasyAVR issue?
I'm trying to think how your build differs from standard and there is one thing - you only have one row, so instead of turning on and off along with other rows that row is always "on". You could try adding a couple of extra pins that aren't actually connected to anything as ROW1 and ROW2 in the config to make it more normal.
If the switches are good, the fake rows don't fix and you really want to use EasyAVR there is one last option to try - separate the two power wires and configure them as COL0 and COL1 and then solder the other wires in pairs, one from each set. This will give you two columns of four very similar to what you had working before. The problems with this are that it will be harder to keep it slim physically and you won't be able to press more than one button at once without triggering "ghost" keypresses. This is why big boards use diodes, but you don't have that option with the premade switches...
Alternately I've configured a different firmware for you to try assuming it's still wired like this:
ROW0=C7 (both "power" wires)
COL0=B0
COL1=B1
COL2=B2
COL3=B3
COL4=D1
COL5=D2
COL6=D3
COL7=C6
You need to extract the attached .zip and flash the .hex as usual, then after resetting the Teensy open a command prompt drag in scwr.exe followed by buttons.scb and run it to upload the keymap. I've just gone with the letters A-H as I don't know what you're trying to make which button do, if this works and you're keeping it quite simple you can use this firmware permanently. The original version with more parts and documentation is available here (http://deskthority.net/workshop-f7/soarer-s-keyboard-controller-firmware-t6767.html) (if you're going with this firmware we should take this discussion elsewhere...)
Hope some of that made sense!
-
Alternately I've configured a different firmware for you to try assuming it's still wired like this:
ROW0=C7 (both "power" wires)
COL0=B0
COL1=B1
COL2=B2
COL3=B3
COL4=D1
COL5=D2
COL6=D3
COL7=C6
You need to extract the attached .zip and flash the .hex as usual, then after resetting the Teensy open a command prompt drag in scwr.exe followed by buttons.scb and run it to upload the keymap. I've just gone with the letters A-H as I don't know what you're trying to make which button do, if this works and you're keeping it quite simple you can use this firmware permanently. The original version with more parts and documentation is available here[/ull] (if you're going with this firmware we should take this discussion elsewhere...)
Hope some of that made sense!
(http://deskthority.net/workshop-f7/soarer-s-keyboard-controller-firmware-t6767.html)
This last solution worked, got all 8 buttons working woo! I...have no idea why that works and EasyAVR doesn't XD
That will work great for this version since I'm ordering a teensy 3.2 and moving on. If you could toss me a method to configure the buttons (I'd like to include ctrl-z, ctrl-y, f (for flip image), etc etc etc then this ones in the bag thanks to you. Also if pms or a different forum location is best just let me know where to be. Much thanks!
-
Hey guys, it's been a while. Sorry I haven't been around. I've found that among being a professional, husband, and homeowner, I've not had much time for hobbies. Hopefully I can get back some things during the winter months.
I haven't been checking the thread, are there any big issues outstanding?
-
Any chance of Leeku 1800 PCB support? It already has it's own key mapper so I would understand if you don't want to put time into it, however your keymapper has a setting to keep the Caps Lock LED always on (at least from as far as I can tell) which is something I've been looking all over for!
-
Any chance of Leeku 1800 PCB support? It already has it's own key mapper so I would understand if you don't want to put time into it, however your keymapper has a setting to keep the Caps Lock LED always on (at least from as far as I can tell) which is something I've been looking all over for!
If it runs a supported microcontroller, a port is very possible. I want to open source the tool, which should make new ports much easier. Hopefully that will come together soon
-
Hey guys, it's been a while. Sorry I haven't been around. I've found that among being a professional, husband, and homeowner, I've not had much time for hobbies. Hopefully I can get back some things during the winter months.
I haven't been checking the thread, are there any big issues outstanding?
Welcome back :)
The only real problem I remember is TheGlow who had a Frosty Flake V2 not working well, he gave up and went to TMK but I think he'd be willing to help debug if you have time.
The most common feature request has been for a handwire option with diodes the other way, and there was a request for support for Hasu's Alps board which has an 8x8 matrix (with diodes the other way) - a GB for this board finished recently so now would be a good time to add it.
The strangest issue is the "board" I discussed with sylcat - 8 buttons and no diodes but it didn't like it configured as one row with 8 columns. If there's a reason for this I'd love to understand it!
If you'd like a tester to try adding ports before you open the source I have plenty of spare time, if not I will wait patiently :)
-
Just a heads up that I couldn't get a working firmware for the GH60 rev C PCB with your tool but that the latest TMK works. Something must have changed since whichever version you originally added support for and the final.
-
Hey guys, it's been a while. Sorry I haven't been around. I've found that among being a professional, husband, and homeowner, I've not had much time for hobbies. Hopefully I can get back some things during the winter months.
I haven't been checking the thread, are there any big issues outstanding?
Welcome back :)
The only real problem I remember is TheGlow who had a Frosty Flake V2 not working well, he gave up and went to TMK but I think he'd be willing to help debug if you have time.
The most common feature request has been for a handwire option with diodes the other way, and there was a request for support for Hasu's Alps board which has an 8x8 matrix (with diodes the other way) - a GB for this board finished recently so now would be a good time to add it.
The strangest issue is the "board" I discussed with sylcat - 8 buttons and no diodes but it didn't like it configured as one row with 8 columns. If there's a reason for this I'd love to understand it!
If you'd like a tester to try adding ports before you open the source I have plenty of spare time, if not I will wait patiently :)
Thanks for this. The reversed diodes is going to be delivered. I am now planning a complete rewrite of the firmware to meet the following goals:
(1) more flexible hardware options
(2) move complexity off the AVR to the PC where it is easier to handle (simpler firmware, more advanced keymapper)
(3) remove everything that is preventing it from being open-source.
(4) hopefully better documentation
EasyAVR OSP (Open Source Project) should be kicking off on github soon.
-
Just a heads up that I couldn't get a working firmware for the GH60 rev C PCB with your tool but that the latest TMK works. Something must have changed since whichever version you originally added support for and the final.
Does it work at all or is it completely non-functional?
-
Just a heads up that I couldn't get a working firmware for the GH60 rev C PCB with your tool but that the latest TMK works. Something must have changed since whichever version you originally added support for and the final.
Does it work at all or is it completely non-functional?
Completely non-functional. I loaded up the the default GH60 poker layout, generated the hex and flashed with FLIP and got nothing. The keyboard is recognized as an EasyAVR GH60 but beyond that I wasn't registering any key presses.
If you need me to do any testing I'm more than happy to.
-
Welcome back, metalliqaz :)
Is it possible to have support for the KC60 soon enough ?
-
Yo guys!
I just wanted to send in an update for my last couple posts. EasyAVR did end up working for all 8 buttons after I updated to the current beta and used Suicidal_Orange's suggestion of adding a few rows non occupied pins in the cfg. The problem was software on my end~!
(Also I sent a pm or two and I'm not sure if they are going through? Nothing showing in my "sent" folder even after it says successfully sent, huh.)
I had a quick side question I was unable to find online. Would anyone know offhand if the TeensyLC board here would work with EasyAVR's handwire_hardwire? https://www.pjrc.com/store/teensylc.html
If so I could make a couple cheap setups for my friends for Christamas~ :)
-
Yo guys!
I just wanted to send in an update for my last couple posts. EasyAVR did end up working for all 8 buttons after I updated to the current beta and used Suicidal_Orange's suggestion of adding a few rows non occupied pins in the cfg. The problem was software on my end~!
(Also I sent a pm or two and I'm not sure if they are going through? Nothing showing in my "sent" folder even after it says successfully sent, huh.)
I had a quick side question I was unable to find online. Would anyone know offhand if the TeensyLC board here would work with EasyAVR's handwire_hardwire? https://www.pjrc.com/store/teensylc.html
If so I could make a couple cheap setups for my friends for Christamas~ :)
TeensyLC is ARM based. Not compatible.
Arduino Pro Micro from eBay is the cheapest.
-
TeensyLC is ARM based. Not compatible.
So, kiibohd should be compatible with it?
I'm out of controllers, and haven't quite finished my pursuit of keyboards (although now that I have a steel-encased ergodox I'll admit it's slowed down) so might pursue something like this ... but metaliqaz' software is so easy ...
-
TeensyLC is ARM based. Not compatible.
Arduino Pro Micro from eBay is the cheapest.
This looks like the best bet with EasyAVR then? http://www.ebay.com/itm/New-Pro-Micro-ATmega32U4-5V-16MHz-Replace-ATmega328-Arduino-Pro-Mini-/221891843710?hash=item33a9c8d67e:g:D70AAOSwVL1V~1dn
-
This looks like the best bet with EasyAVR then?
Two thoughts: One, I have one like that and it has fewer pins than the teensy -- you'll want to count your projects rows & pins to make sure you have enough without getting really creative to invent -- what, a 6x6 matrix? The ebay Desc. says 12 DIOs, but that's strictly Digital I/O ... there's a few Analog I/Os too. But that's still an 8x8 matrix, which equates to 12x4 the easy way. Not quite a 60% board.
The other thing is, using it with this software, the pins will be at slightly different places (I think) so you're going to need to use the 'handwire' option ... or TMK which is much more flexible in that regard.
Otherwise, yeah. It'll work fine.
-
TeensyLC is ARM based. Not compatible.
Arduino Pro Micro from eBay is the cheapest.
This looks like the best bet with EasyAVR then? http://www.ebay.com/itm/New-Pro-Micro-ATmega32U4-5V-16MHz-Replace-ATmega328-Arduino-Pro-Mini-/221891843710?hash=item33a9c8d67e:g:D70AAOSwVL1V~1dn
That is one of them. For "Best" I would stick with a Teensy 2.0. For cheapest this is going to be it. You want to make sure it is a 5v 16Mhz version. There are also 3.3v 8Mhz ones. There is also a version with a Mini USB connector if you prefer that, cost a little more. http://www.ebay.com/itm/New-Pro-Micro-ATmega32U4-5V-16MHz-Replace-ATmega328-Arduino-Pro-Mini-/381374596957?hash=item58cbb2875d:g:Xy8AAOSwrklVJ9A8
Like AKmalamute mentioned there are only 18 pins accessible, TX/RX are usable. 9x9 would give you 81 keys, but handwire has a 6 row limit, so 6x12 is the largest matrix possible
You will also need to use avrdude to flash it which can be a tedious task since you have to time it just right. But once you have this all figured out you have a cheap controller that is as fast and capable as a Teensy 2.0 with less pins.
-
The Teensy is not exactly expensive...
-
TeensyLC is ARM based. Not compatible.
So, kiibohd should be compatible with it?
I'm out of controllers, and haven't quite finished my pursuit of keyboards (although now that I have a steel-encased ergodox I'll admit it's slowed down) so might pursue something like this ... but metaliqaz' software is so easy ...
They list the Teensy 3 as supported. It would be great if they supported it since there are few low cost ARM boards as cheap.
-
Got another question wooo~
Since they are pretty unsatisfying, I'm going to bail on membrane switches like I posted above and try out these instead: http://www.amazon.com/gp/product/B008DS1GY0?psc=1&redirect=true&ref_=oh_aui_detailpage_o01_s00
Basically one button press to equal one keystroke as expected like it were a keyboard key. I'm curious about the wiring though since each button has four connections. Will I be able to just use one or two of those to complete the circuit? When using two 4 button membranes (8 buttons total) I had to solder together each one's 5th contact (power?) together to create one line to a pin, effectively using 9 pins on the teensy instead of 10 (since each 4 button membrane has 5 contacts.)
Would I have to repeat that process for these new buttons? (I.e., each button would have one contact going to a teensy pin, one connecting to a big governing power contact line with all the others', and the remaining two contacts left out?)
Sorry for the ignorance on this .-.
-
Those tiny switches have two pairs of legs (the ones bent towards each other are connected) so they only need two wires. You're right with the wiring - number of switches +1 pins needed. The tidiest way to do it is to run a wire along all the switches and cut or burn a hole in the insulation to connect it to each switch.
Those switches are very small though, I really wouldn't like to use them blind on the back of a tablet. These (http://www.amazon.com/4-3mm-Momentary-Tactile-Button-Switch/dp/B00974Z6I6/ref=sr_1_29?s=industrial&ie=UTF8&qid=1445986161&sr=1-29) are more expensive but at 4x the size they should be much more usable :thumb:
-
Those switches are very small though, I really wouldn't like to use them blind on the back of a tablet.
Front actually! At least that's what I have in my head. I keep envisioning holding the tablet and clicking with the left thumb (for righties) when functions are needed like undo, etc. I figured since draw tablets can go even smaller than 10 inches the smaller the buttons at first the better. The design has been changing pretty much every week as I figure stuff out though so I may very well go to those you suggested~
And ooooh the legs run through, gotcha. I suspect I'll need to do a test to see which legs provide the grounding and which the signal unless it doesn't matter.
-
And ooooh the legs run through, gotcha. I suspect I'll need to do a test to see which legs provide the grounding and which the signal unless it doesn't matter.
Switches are very simple - you send power to one side and when you press them that power goes out the other side so the controller knows it happened. They are no different to a broken wire so connect them however you wish :)
I'll just leave this here, it's a tiny switch sat on my adult-male thumb for scale...
(http://i.imgur.com/Qv6qUk3.jpg)
-
Hey Metalliqaz, just wanted to say thanx. But as suicidal_orange mentioned I am having odd behavior on a frosty flake v2.
I build the firmware and upload it fine but then I have some odd behavior. A lot of double to triple pressed keys. Or keys doubling later, for example: abcbdefeg.
Sometimes 1 or 2 chars later repeat a previous one. Same with spacebar triggering a few. Even brought the debounce up to 50 or higher, where multiple legit backspace entries would be ignored.
Really unsure what the case was as I didnt have anything too crazy going on in the file.
In the meantime I got TMK working which was a lot more in depth. I've yet to figure out simple typing macros where your GUI made it so much simpler.
-
I'm trying to program an ortholinear Atomic PCB; I modified the handwire and handwire hardware cfg files appropriately, but after I load the hex to the PCB with FLIP, the keyboard is detected as a working USB input device but the keys don't do anything when pressed. Anyone encountered this with an Atomic PCB?
-
I'm trying to program an ortholinear Atomic PCB; I modified the handwire and handwire hardware cfg files appropriately, but after I load the hex to the PCB with FLIP, the keyboard is detected as a working USB input device but the keys don't do anything when pressed. Anyone encountered this with an Atomic PCB?
Not specifically Atomic related but if your diodes are backwards this is what happens - try shorting one leg of a switch to the far side of the diode attached to the other leg with a piece of wire/anything metal to check.
Also are you using the latest version or the beta? Not sure what changed but handwire is the latest feature to be added so the beta is worth a try if you're not already using it :)
-
I'm trying to program an ortholinear Atomic PCB; I modified the handwire and handwire hardware cfg files appropriately, but after I load the hex to the PCB with FLIP, the keyboard is detected as a working USB input device but the keys don't do anything when pressed. Anyone encountered this with an Atomic PCB?
Not specifically Atomic related but if your diodes are backwards this is what happens - try shorting one leg of a switch to the far side of the diode attached to the other leg with a piece of wire/anything metal to check.
Also are you using the latest version or the beta? Not sure what changed but handwire is the latest feature to be added so the beta is worth a try if you're not already using it :)
Atomic PCB is not compatible with handwire. Diodes are the wrong way, as you mentioned.
-
Not specifically Atomic related but if your diodes are backwards this is what happens - try shorting one leg of a switch to the far side of the diode attached to the other leg with a piece of wire/anything metal to check.
Also are you using the latest version or the beta? Not sure what changed but handwire is the latest feature to be added so the beta is worth a try if you're not already using it :)
Atomic PCB is not compatible with handwire. Diodes are the wrong way, as you mentioned.
Got it, thanks. Someone had posted some code from a github for the atomic about altering the handwire cfg to work, so I guess it was just theorycraft on their part.
Fingers crossed for atomic support, I guess!
-
On vacation this week. The open source project is starting. Hosting is on github (https://github.com/dhowland/EasyAVR)
-
Hey guys, it's been a while. Sorry I haven't been around. I've found that among being a professional, husband, and homeowner, I've not had much time for hobbies. Hopefully I can get back some things during the winter months.
I haven't been checking the thread, are there any big issues outstanding?
Can we get some love for Hasu's PCB? Are there any plans regarding adding port conversion or Bluetooth functionality (this (https://www.adafruit.com/products/2661) thing looks promising)? Do you accept bribes donations?
-
On vacation this week. The open source project is starting. Hosting is on github (https://github.com/dhowland/EasyAVR)
Great!
I see a big list of files we won't get to see in .gitignore but no files of interest have been uploaded, will check back later :)
-
On vacation this week. The open source project is starting. Hosting is on github (https://github.com/dhowland/EasyAVR)
Great!
I see a big list of files we won't get to see in .gitignore but no files of interest have been uploaded, will check back later :)
Yeah I have development to do before committing. Plenty of work
TeensyLC is ARM based. Not compatible.
Arduino Pro Micro from eBay is the cheapest.
This looks like the best bet with EasyAVR then? http://www.ebay.com/itm/New-Pro-Micro-ATmega32U4-5V-16MHz-Replace-ATmega328-Arduino-Pro-Mini-/221891843710?hash=item33a9c8d67e:g:D70AAOSwVL1V~1dn
That is one of them. For "Best" I would stick with a Teensy 2.0. For cheapest this is going to be it. You want to make sure it is a 5v 16Mhz version. There are also 3.3v 8Mhz ones. There is also a version with a Mini USB connector if you prefer that, cost a little more. http://www.ebay.com/itm/New-Pro-Micro-ATmega32U4-5V-16MHz-Replace-ATmega328-Arduino-Pro-Mini-/381374596957?hash=item58cbb2875d:g:Xy8AAOSwrklVJ9A8
Like AKmalamute mentioned there are only 18 pins accessible, TX/RX are usable. 9x9 would give you 81 keys, but handwire has a 6 row limit, so 6x12 is the largest matrix possible
You will also need to use avrdude to flash it which can be a tedious task since you have to time it just right. But once you have this all figured out you have a cheap controller that is as fast and capable as a Teensy 2.0 with less pins.
-
Any news about the open source code? Github still have nothing. :(
-
isn't there any ISO layout?
-
I have a question but excuse me if it's stupid.
I have an ANSI 87 Filco with the Pegasus Hoof (2015 revision), and I would like to add an extra key to the layout since the PCB (apparently) supports it.
More specifically I would like use the J14 key (between =+ and the 1u backspace on JIS keyboards).
Now, what I tried was adding a key to the filcohoofv2.cfg file but there is no matrix entry assigned to it.
I guess I should edit the FILCOHOOFV2.template file as well but it's not human readable and I don't know how to decode it.
I also tried the handwire config but the matrix is not large enough.
What to do next?
-
I have a question but excuse me if it's stupid.
I have an ANSI 87 Filco with the Pegasus Hoof (2015 revision), and I would like to add an extra key to the layout since the PCB (apparently) supports it.
More specifically I would like use the J14 key (between =+ and the 1u backspace on JIS keyboards).
Now, what I tried was adding a key to the filcohoofv2.cfg file but there is no matrix entry assigned to it.
I guess I should edit the FILCOHOOFV2.template file as well but it's not human readable and I don't know how to decode it.
I also tried the handwire config but the matrix is not large enough.
What to do next?
Go down the rabbit hole and use TMK. :P
-
isn't there any ISO layout?
In what way do you mean? Some boards have an ISO option in the "available layout" options at the bottom (like the Quickfire and Filco ones) Other than that if you click on the key you want to assign and press what you want it to be on your current keyboard it will pick the appropriate option for you, even if the label doesn't match :thumb:
-
I meant in AVR keymap! I can't find any ISO layout available or any option to change it (ISO enter, shift etc)
-
Which board are you choosing? The handwire option shows all possible key positions, you need to know where your switches are connected in the matrix (visible top right) to assign the correct position to it's keycode. You can create a pretty layout if you like but it's not needed.
-
For GH60 (new rev. C) ;)
-
Don't think the GH60 works perfectly but try the "all keys" option and have a play - enter might need to go where the big \| is :)
-
I have a question but excuse me if it's stupid.
I have an ANSI 87 Filco with the Pegasus Hoof (2015 revision), and I would like to add an extra key to the layout since the PCB (apparently) supports it.
More specifically I would like use the J14 key (between =+ and the 1u backspace on JIS keyboards).
Now, what I tried was adding a key to the filcohoofv2.cfg file but there is no matrix entry assigned to it.
I guess I should edit the FILCOHOOFV2.template file as well but it's not human readable and I don't know how to decode it.
I also tried the handwire config but the matrix is not large enough.
What to do next?
Go down the rabbit hole and use TMK. :P
The Pegasus Hoof suddenly disappeard from TMK's gitbub. Would HID Liberation Device's files work?
-
Any news about the open source code? Github still have nothing. :(
Still working on it
-
How do i make the effect seen here
i mean dimming my LED,s?
-
How do i make the effect seen here
i mean dimming my LED,s?
For standard dimming you just need to map keys on a layer to Scancode_BL_Dimmer - see also Scancode_BL_enable and Scancode_BL_blmode.
I guess once you get so dim it's off it goes back bright but I'm yet to play with LEDs :)
-
how do i make a custom layout for my specific keyboard? (its with a teenky so it should work)
-
how do i make a custom layout for my specific keyboard? (its with a teenky so it should work)
Select the handwired keyboard option, read carefully the instructions and make your custom layout. :)
-
Hi, I tried to use this Keymapper, but there are two problems
1. I can't add german characters like üöäß
2. I can't define the shift layer
It is only possiple to create QWERTY layouts. How can I fix this?
Regards
Burli
-
Hi, I tried to use this Keymapper, but there are two problems
1. I can't add german characters like üöäß
2. I can't define the shift layer
It is only possiple to create QWERTY layouts. How can I fix this?
Regards
Burli
Look where the keys are on your board and compare it to a pic of UK ISO and pick the UK key - when you tell your computer the board is German it magically will be. Or click the key in the keymapper and hit the key on your board and ignore whatever shows up - it will work fine :)
I don't understand what you mean by shift layer, do you mean FN layers? There are tick box things across the top for them.
-
Look where the keys are on your board and compare it to a pic of UK ISO and pick the UK key - when you tell your computer the board is German it magically will be. Or click the key in the keymapper and hit the key on your board and ignore whatever shows up - it will work fine :)
Should I select a QWERTY layout first and then hit the Ü key?
I don't understand what you mean by shift layer, do you mean FN layers? There are tick box things across the top for them.
No, I mean Shift. If I press shift+komma I don't want the < character
-
Look where the keys are on your board and compare it to a pic of UK ISO and pick the UK key - when you tell your computer the board is German it magically will be. Or click the key in the keymapper and hit the key on your board and ignore whatever shows up - it will work fine :)
Should I select a QWERTY layout first and then hit the Ü key?
I don't understand what you mean by shift layer, do you mean FN layers? There are tick box things across the top for them.
No, I mean Shift. If I press shift+komma I don't want the < character
The keyboard sends a code which is the same no matter where you live, your operating system converts this code into a letter or symbol depending on your country setting. If you change your keyboard setting to another language and type you can confirm this - the keyboard hasn't changed but what it outputs does.
Just load a QWERTY layout and you'll be fine :)
-
Is F13-F24 still supported? I've tried using stable and beta builds with no luck.
-
Is F13-F24 still supported? I've tried using stable and beta builds with no luck.
Shifting F1-F12 should give you those extra functions on any operating system, unless you want dedicated keys.
-
Is F13-F24 still supported? I've tried using stable and beta builds with no luck.
Shifting F1-F12 should give you those extra functions on any operating system, unless you want dedicated keys.
If that works you can tick "with mods: shift" and do F1-12 again for single key acces :thumb:
-
Hm, I was trying to go for a dedicated key, Caps Lock to F13 specifically. I'm currently using Autohotkey as a band-aid solution but I'd rather have a hardware solution if available.
-
Hm, I was trying to go for a dedicated key, Caps Lock to F13 specifically. I'm currently using Autohotkey as a band-aid solution but I'd rather have a hardware solution if available.
Does shift+F1 work? If it does set caps lock to F1 and at the top chose with mods: shift and it will effectively become F13.
-
Is F13-F24 still supported? I've tried using stable and beta builds with no luck.
It should be sending the scancodes for F13-F24. They may not be supported by the operating system.
-
I build two keyboards
(http://3.bp.blogspot.com/-VrlvcCQDYJk/Vn0yXsmq5AI/AAAAAAAATng/LC6Zh3bt3jc/s1600/20151225_130908_HDR.jpg)
Both have a splitted layout and currently I connected them with flat cables.
(http://2.bp.blogspot.com/-ExdC_DxrdJo/Vn1DA10iX7I/AAAAAAAATok/zPsqNdOOE3Q/s1600/20151225_141448_HDR.jpg)
But I want to use an IO expander like the MCP23018 on the ErgoDox. How can I use this with this software?
-
I want to use an IO expander like the MCP23018 on the ErgoDox. How can I use this with this software?
None of the boards supported by this firmware use IO expanders so there is no way you're going to make it work unless metalliqaz makes a new binary. He's currently doing a code tidy up before releasing the source so I don't think he'll be adding any new features anytime soon - your best bet would be to wire it up the same as the middle part of an ergodox and use TMK.
-
I read through a lot of the thread but I cannot find if anyone said the GH60/KC60 was tested and proved supported. Also, I need help on configuring the boot key. What do you guys normally do with the boot key. Also, can I use tkg-toolkit instead of teensy to load the .hex file? I am using a Mac.
-
Which GH60 do you have? I have the final rev C from the group buy and it does not work with EasyAVR as the diodes are the wrong way round, so if that's what you have you're out of luck. Previous versions surely worked else the option wouldn't be included so if you have an unknown Chinese "GH60" you might get lucky.
I've never used the boot key as I've always had a button on the Teensy/PCB which does the same job, but you're supposed to put it somewhere you won't hit by mistake, usually on a layer.
The output is a hex file so you can use whatever program you like to flash - I've used avrdude for an Arduino Micro and dfu-programmer for the GH60 and both work fine.
-
Friggin GH60, I can't keep up with them. Need to finish open source
-
I read through a lot of the thread but I cannot find if anyone said the GH60/KC60 was tested and proved supported. Also, I need help on configuring the boot key. What do you guys normally do with the boot key. Also, can I use tkg-toolkit instead of teensy to load the .hex file? I am using a Mac.
KC60 isn't yet...diodes are reversed.
-
Does anyone know if this works well on the Orion v2? I see that the original Orion has been well-tested but I'm not sure what is necessary to ensure that it works on the v2. I don't want to brick my keyboard or anything and I'm woefully inadequate when it comes to firmware-related things.
-
Does anyone know if this works well on the Orion v2? I see that the original Orion has been well-tested but I'm not sure what is necessary to ensure that it works on the v2. I don't want to brick my keyboard or anything and I'm woefully inadequate when it comes to firmware-related things.
I think it is likely that it will work, except for the new LEDs. However, if you aren't comfortable with the whole reprogramming thing, you may want to let someone else test it.
-
By the way, the open source project is coming along. I have made several of the planned changes and I keep making progress. If my plans pan out, then the resulting code will be totally general purpose and all your keyboards will be supported. Adding new boards will only require changing python code and/or config files (i.e. no compiling!)
-
By the way, the open source project is coming along. I have made several of the planned changes and I keep making progress. If my plans pan out, then the resulting code will be totally general purpose and all your keyboards will be supported. Adding new boards will only require changing python code and/or config files (i.e. no compiling!)
You're the best!
-
By the way, the open source project is coming along. I have made several of the planned changes and I keep making progress. If my plans pan out, then the resulting code will be totally general purpose and all your keyboards will be supported. Adding new boards will only require changing python code and/or config files (i.e. no compiling!)
No compiling? I guess the only reason to look at the source will be if we think we can write more efficient code than you did so we can squeeze in another couple of macros :))
Will be great to be able any "will this work?" with a yes though :thumb:
-
By the way, the open source project is coming along. I have made several of the planned changes and I keep making progress. If my plans pan out, then the resulting code will be totally general purpose and all your keyboards will be supported. Adding new boards will only require changing python code and/or config files (i.e. no compiling!)
Nice!
-
By the way, the open source project is coming along. I have made several of the planned changes and I keep making progress. If my plans pan out, then the resulting code will be totally general purpose and all your keyboards will be supported. Adding new boards will only require changing python code and/or config files (i.e. no compiling!)
Sounds awesome. Will we be able to use it for a hand wired board that uses something other than the phantom's 6x17 matrix? I want to handwire one with 105 keys and 3 lock leds.
-
Yes
-
Oh and support for the MCP23008 on Ergodox?
-
It will be open source. You can try adding support if you want. Won't be easy
-
ok so im pretty stumped got the easy keymap thing going got it coded, pins lined up but i cant get it to work for crap.....
[MATRIX]
ROW0=D7
ROW1=B4
ROW2=B4
ROW3=B6
COL1=F7
COL2=B0
COL3=B1
COL4=B2
COL5=B3
COL6=B7
COL7=D0
COL8=D1
COL9=D2
COL10=D3
COL11=C6
COL12=C7
LED0=D6
LED1=E6
i think its correct no clue about the LED pins
[Example]
# The example will be a 40% layout
# 40% uses only 12 columns of the 17, so get rid of leftmost and 4 rightmost
MAKE_SPACER(0, 0, 0)
MAKE_SPACER(1, 0, 0)
MAKE_SPACER(2, 0, 0)
MAKE_SPACER(3, 0, 0)
MAKE_SPACER(4, 0, 0)
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(0, 13, 0)
MAKE_SPACER(1, 13, 0)
MAKE_SPACER(2, 13, 0)
MAKE_SPACER(3, 13, 0)
MAKE_SPACER(4, 13, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(0, 14, 0)
MAKE_SPACER(1, 14, 0)
MAKE_SPACER(2, 14, 0)
MAKE_SPACER(3, 14, 0)
MAKE_SPACER(4, 14, 0)
MAKE_SPACER(5, 14, 0)
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# 40% uses only 4 columns of the 6, so get rid of the last 2 rows
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
MAKE_SPACER(4, 1, 0)
MAKE_SPACER(4, 2, 0)
MAKE_SPACER(4, 3, 0)
MAKE_SPACER(4, 4, 0)
MAKE_SPACER(4, 5, 0)
MAKE_SPACER(4, 6, 0)
MAKE_SPACER(4, 7, 0)
MAKE_SPACER(4, 8, 0)
MAKE_SPACER(4, 9, 0)
MAKE_SPACER(4, 10, 0)
MAKE_SPACER(4, 11, 0)
MAKE_SPACER(4, 12, 0)
MAKE_SPACER(4, 13, 0)
MAKE_SPACER(4, 14, 0)
# make 2nd row
MAKE_KEY(1, 1, 5, 4)
MAKE_SPACER(1, 11, 0)
MAKE_KEY(1, 12, 7, 4)
# make 3rd row
MAKE_KEY(2, 1, 7, 4)
MAKE_SPACER(2, 2, 0)
MAKE_KEY(2, 11, 5, 4)
# make bottom row
MAKE_KEY(3, 1, 5, 4)
MAKE_SPACER(3, 3, 0)
MAKE_SPACER(3, 5, 0)
MAKE_SPACER(3, 6, 0)
MAKE_KEY(3, 7, 25, 4)
MAKE_SPACER(3, 8, 0)
MAKE_SPACER(3, 9, 0)
MAKE_SPACER(3, 10, 0)
MAKE_KEY(3, 11, 5, 4)
MAKE_KEY(3, 12, 5, 4)
someone halp?
i checked most of the connections for shorts and stuff but nothing...or it spams all the buttons or just the bottom row when not touching anything.....now i cant get it NOT to be pressing buttons even though i tested all the soldering and wiring....
-
ok so im pretty stumped got the easy keymap thing going got it coded, pins lined up but i cant get it to work for crap.....
[MATRIX]
ROW0=D7
ROW1=B4
ROW2=B4
ROW3=B6
COL1=F7
COL2=B0
COL3=B1
COL4=B2
COL5=B3
COL6=B7
COL7=D0
COL8=D1
COL9=D2
COL10=D3
COL11=C6
COL12=C7
LED0=D6
LED1=E6
i think its correct no clue about the LED pins
[Example]
# The example will be a 40% layout
# 40% uses only 12 columns of the 17, so get rid of leftmost and 4 rightmost
MAKE_SPACER(0, 0, 0)
MAKE_SPACER(1, 0, 0)
MAKE_SPACER(2, 0, 0)
MAKE_SPACER(3, 0, 0)
MAKE_SPACER(4, 0, 0)
MAKE_SPACER(5, 0, 0)
MAKE_SPACER(0, 13, 0)
MAKE_SPACER(1, 13, 0)
MAKE_SPACER(2, 13, 0)
MAKE_SPACER(3, 13, 0)
MAKE_SPACER(4, 13, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(0, 14, 0)
MAKE_SPACER(1, 14, 0)
MAKE_SPACER(2, 14, 0)
MAKE_SPACER(3, 14, 0)
MAKE_SPACER(4, 14, 0)
MAKE_SPACER(5, 14, 0)
MAKE_SPACER(0, 15, 0)
MAKE_SPACER(1, 15, 0)
MAKE_SPACER(2, 15, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(5, 15, 0)
MAKE_SPACER(0, 16, 0)
MAKE_SPACER(1, 16, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(5, 16, 0)
# 40% uses only 4 columns of the 6, so get rid of the last 2 rows
MAKE_SPACER(5, 1, 0)
MAKE_SPACER(5, 2, 0)
MAKE_SPACER(5, 3, 0)
MAKE_SPACER(5, 4, 0)
MAKE_SPACER(5, 5, 0)
MAKE_SPACER(5, 6, 0)
MAKE_SPACER(5, 7, 0)
MAKE_SPACER(5, 8, 0)
MAKE_SPACER(5, 9, 0)
MAKE_SPACER(5, 10, 0)
MAKE_SPACER(5, 11, 0)
MAKE_SPACER(5, 12, 0)
MAKE_SPACER(5, 13, 0)
MAKE_SPACER(5, 14, 0)
MAKE_SPACER(4, 1, 0)
MAKE_SPACER(4, 2, 0)
MAKE_SPACER(4, 3, 0)
MAKE_SPACER(4, 4, 0)
MAKE_SPACER(4, 5, 0)
MAKE_SPACER(4, 6, 0)
MAKE_SPACER(4, 7, 0)
MAKE_SPACER(4, 8, 0)
MAKE_SPACER(4, 9, 0)
MAKE_SPACER(4, 10, 0)
MAKE_SPACER(4, 11, 0)
MAKE_SPACER(4, 12, 0)
MAKE_SPACER(4, 13, 0)
MAKE_SPACER(4, 14, 0)
# make 2nd row
MAKE_KEY(1, 1, 5, 4)
MAKE_SPACER(1, 11, 0)
MAKE_KEY(1, 12, 7, 4)
# make 3rd row
MAKE_KEY(2, 1, 7, 4)
MAKE_SPACER(2, 2, 0)
MAKE_KEY(2, 11, 5, 4)
# make bottom row
MAKE_KEY(3, 1, 5, 4)
MAKE_SPACER(3, 3, 0)
MAKE_SPACER(3, 5, 0)
MAKE_SPACER(3, 6, 0)
MAKE_KEY(3, 7, 25, 4)
MAKE_SPACER(3, 8, 0)
MAKE_SPACER(3, 9, 0)
MAKE_SPACER(3, 10, 0)
MAKE_KEY(3, 11, 5, 4)
MAKE_KEY(3, 12, 5, 4)
someone halp?
i checked most of the connections for shorts and stuff but nothing...or it spams all the buttons or just the bottom row when not touching anything.....now i cant get it NOT to be pressing buttons even though i tested all the soldering and wiring....
If the pins are right and your diodes are the right way round it will work, so one of these must be wrong. Without pics it's impossible for anyone to say which though, so - pics please :)
Also are you using the beta version or the "latest version"? It's been a while so I don't remember what changed, but the beta is better for handwire so try that if you haven't already.
-
Sounds like diodes wrong direction. Wait for eaosp
-
http://imgur.com/NB86ujl i think they are all backwards so im starting to work on editing the gh60 from TMK
-
By the way, the open source project is coming along. I have made several of the planned changes and I keep making progress. If my plans pan out, then the resulting code will be totally general purpose and all your keyboards will be supported. Adding new boards will only require changing python code and/or config files (i.e. no compiling!)
This is a lofty goal but I think I've cracked it. I've gone through many redesigns and I've made a lot of progress. My CompactTKL is working, now I have to debug other boards and then upgrade the keymapper to work with the new firmware. That will take a while. I can finally see the finish line, though.
-
That is great news!
-
Great to hear. Will the CompactTKL add support for the newer ergodox builds?
I'm finding myself hardpressed to get the macro and mouse features Easy AVR adds so easily to the supported chips vs the other TKL types, which add layers of keys and not much else.
Also, the first posts included ergodox layouts, which seem to be gone from the current release (unless I'm missing the default layout somewhere in the list). Did this support end? If not, is there a chip selection of ergodox that will support all the features I enjoy with your software on a frosty flake?
Sorry if this information is available somewhere, I couldn't find much googling around the usual forums.
-
The software does not currently support the Ergodox because it doesn't support the MCP23008 that drives the half-to-half connection. The primary reason I haven't supported Ergodox is because I don't own one. Without being able to debug, I have no hope of getting it working.
I am currently working on an overhaul of the EasyAVR code leading up to open-sourcing the project. Once I'm done, a talented programmer could take up the cause and work with me to contribute Ergodox support. I can't predict if that will happen or not.
-
Oh, forgot to mention: the newest "ergodox", the Infinity, uses an ARM processor. The AVR code will never work on it.
-
If the MCP23018 communication is the issue, couldn't I use a MCP23017 to de-I2C the remote side to regular GPIO to a teensy on a hand wired layout?
The graphical layout would look a little funky to maintain the matrix, but wouldn't that make the teensy ergodox work?
-
I think this will finally be uploaded to Github this weekend or maybe next week. The firmware is so much better now; I can't believe I waited this long to make these changes.
The way it works is you first pick a build to use, from 3 parameters:
Device (ATmega32U4, etc.)
Speed (16MHz or 8MHz)
Size (Costar, TKL, 60%, Pad, Card)
The smaller sizes leave more room in memory for other features.
So if you wanted to add support for your handwired board, you'd select ATmega32U4-16MHz-TKL
Then you have to capture the physical characteristics of your board in a Python config file. It's a bunch of declarations that specify the IO pins to use for the matrix, what order to use them, what pins to use for LEDs, and especially the layout of the keys. It's a lot to capture and it takes a while, but once it's done it's done and you don't have to do any programming.
Then you just run the tool as usual.
I need to test it on the boards I own and port the rest of the other boards. That will take a while. I'm almost there though. Looking forward to showing off the code. There's still some crumby, embarrassing code in there but it was put in for pragmatic reasons, so whatever.
-
I think this will finally be uploaded to Github this weekend or maybe next week. The firmware is so much better now; I can't believe I waited this long to make these changes.
...
Fantastic, I'm excited to try this out on all of my oddball one-off stuff.
-
Awesome! Can't wait to start digging into it!
-
Yeah it's pretty cool. For example, it no longer matters which direction you put in your diodes. You just have to set two parameters:
The first tells the firmware to either strobe rows/sense columns or strobe columns/sense rows.
The second tells the firmware to sense low for key=pressed or high for key=pressed
-
Well it's working now on all my boards. I have re-licensed all of it as GPLv2 and put it on Github.
I still have to make a package for users to download and I have lots of developer documentation to write, but finally made it. *whew*
-
Awesome! I shall download it as soon as I find the link...
-
Awesome! I shall download it as soon as I find the link...
Link is in OP.
https://github.com/dhowland/EasyAVR
Python 3.3 or later is now REQUIRED. Just get Python 3.5.
-
Looks amazing- thanks so much for this, metalliqaz.
-
Awesome! I shall download it as soon as I find the link...
Link is in OP.
https://github.com/dhowland/EasyAVR
Python 3.3 or later is now REQUIRED. Just get Python 3.5.
That's far too clever, found it on the previous page :p
Lots of interesting source to look through some other time, but for today I just wanted to have a play with the keymapper.
It didn't want to load if there isn't a layout in the configs so I made blanks then reinstalled and all good - these should get Linux users going, just complete the path and change python 3.4 to your version
cd /PATH/TO/EasyAVR-master/keymapper/easykeymap/configs
touch smallfry.cfg octagon.cfg tau.cfg epsilon.cfg techcard.cfg zeta.cfg atreus.cfg SIGMA.cfg
cd ../..
sudo python3.4 setup.py install
This installs easykeymap which looks very familiar!
Thanks metalliqaz, I'll try and get my GH60revC working tomorrow then work out how to add it officially :thumb:
-
the .cfg files weren't included? That's strange... they're in the repository
-
the .cfg files weren't included? That's strange... they're in the repository
Oh wait, those don't have configs. Man, they shouldn't be needed. Probably growing pains related to setuptools. I don't have that problem over here, though
-
the .cfg files weren't included? That's strange... they're in the repository
Oh wait, those don't have configs. Man, they shouldn't be needed. Probably growing pains related to setuptools. I don't have that problem over here, though
Setuptools ran fine without them but I couldn't start easykeymap as it errored mentioning a seemingly random .cfg each time, so it was run, create .cfg, reinstall [repeat until it stopped complaining] then it worked fine.
If you need system info let me know, it could be a new feature in python 3.5? Doesn't sound likely though...
-
Ok got it I'll fix. It's because you installed it. Packaging isn't finished yet.
-
Is there a way to vertically stagger columns? I see I can put 1-3+ space between one row and another, but not offset just a single column. Looking at the Atreus, I see that layout is lined up without the stagger, so I assume you don't have that in as a feature, but I thought I would check anyway. It's obviously not necessary, just trying to see how close to the physical layout I can actually make it appear. The outer two columns in my pad here would be vertically offset by '2'.
Either way, I just wanted to say thank you for releasing this. I'm stuck inside with 20 inches of snow outside, so this is a great time to play around :D
(http://i.imgur.com/DELViEcm.png)
-
Yes, you can. The formatting of the layout grew organically as I added support for more boards, so it is insane and hard to figure out. But you can. Check the ISO layouts of things like the Phantom.
Edit: actually, that depends on what you mean by staggering. You can make long vertical keys, but I didn't add anything for offsetting a whole column. This is due to the windowing kit. It likes to layout things in a grid.
Sorry for no documentation, I will hopefully get it done at some point in the future.
-
the .cfg files weren't included? That's strange... they're in the repository
Oh wait, those don't have configs. Man, they shouldn't be needed. Probably growing pains related to setuptools. I don't have that problem over here, though
Setuptools ran fine without them but I couldn't start easykeymap as it errored mentioning a seemingly random .cfg each time, so it was run, create .cfg, reinstall [repeat until it stopped complaining] then it worked fine.
If you need system info let me know, it could be a new feature in python 3.5? Doesn't sound likely though...
By the way, the reason I haven't finished packaging yet is because of updating. Say you want to add a new target for the GH60revc, right?
So first you take your code, copy the boards/gh60.py to boards/gh60c.py, and add it to the boards/__init__.py file. Then you update the parameters just the way it's needed, and get it to work. Great.
But if you don't issue a pull request to get it into the master, then on the next release you will erase all your work if you do an update. (update = uninstall, install)
I haven't put any system in for user add-ins. For the time being, I've still be running it directly from a source download without installing. That is why I don't get the errors.
Any suggestions are welcome.
-
Any suggestions are welcome.
From a user perspective it would be nice to have an overlay directory (userboards?) with a second __init__.py listing custom boards which are stored in that folder. Looking in the main one in it's just storing an array so this sounds easy enough? Though if the update wipes the root of EasyAVR it will probably take this folder down with it.
Perhaps you could add a second list of boards which came with the download and before doing the update it moves any .py's not in that list elsewhere, updates everything else, then puts them back?
Apparently I can't get Python 3.3+ on my netbook without some serious updating, so I'm trying to kick that off before grabbing some food...
-
What I'd like to do is to have a directory in the user's home directory that overlays the installation, so there would be a ~/easyavr/boards and ~/easyavr/configs, etc. Then use importlib to load them at run time. We'll see
-
That sounds perfect :thumb:
Time to see how "Easy" this new version is!
Edit - tried to build the GH60 "all keys" variant as it shipped to confirm it compiles before I mess with it but got this error message. It's the same whether if I use the installed version or the one in the source(ish) folder
Can't build binary:
Error: 'int' object is not iterable
Any thoughts?
-
Yes, you can. The formatting of the layout grew organically as I added support for more boards, so it is insane and hard to figure out. But you can. Check the ISO layouts of things like the Phantom.
Edit: actually, that depends on what you mean by staggering. You can make long vertical keys, but I didn't add anything for offsetting a whole column. This is due to the windowing kit. It likes to layout things in a grid.
Sorry for no documentation, I will hopefully get it done at some point in the future.
Documentation is the hardest part of anything, don't worry about it. It just took some tinkering to figure out what changed what. Anyway, thanks for the hints, I was wondering if it was partially in tcl/tk... that's what seemed to be complaining when I tried using non-integers, 0, and negative values :). Anyway, I played around with it some more, and since the layout is actually tied to functionality I'll just leave it be. It's purely cosmetic anyway. I did make some crazy looking things though, when playing around with it. If you're curious, I was trying to do something like this:
(http://i.imgur.com/Qgx60Vh.png) (http://i.imgur.com/Qgx60Vh.png)
-
That sounds perfect :thumb:
Time to see how "Easy" this new version is!
Edit - tried to build the GH60 "all keys" variant as it shipped to confirm it compiles before I mess with it but got this error message. It's the same whether if I use the installed version or the one in the source(ish) folder
Can't build binary:
Error: 'int' object is not iterable
Any thoughts?
Ah, yes. GH60 is unique in that it only has 1 LED. bl_modes is supposed to be a list of tuples. Python won't make a tuple unless there is a comma somewhere between the parens. Should be like this.
bl_modes = [
( 0, ),
( 1, )
]
My bad.
-
That sounds perfect :thumb:
Time to see how "Easy" this new version is!
Edit - tried to build the GH60 "all keys" variant as it shipped to confirm it compiles before I mess with it but got this error message. It's the same whether if I use the installed version or the one in the source(ish) folder
Can't build binary:
Error: 'int' object is not iterable
Any thoughts?
Ah, yes. GH60 is unique in that it only has 1 LED. bl_modes is supposed to be a list of tuples. Python won't make a tuple unless there is a comma somewhere between the parens. Should be like this.
bl_modes = [
( 0, ),
( 1, )
]
My bad.
I see! Well the rev C has 4 pins for LEDs so I guess I should start tweaking and see how it goes.
The JD40 on the other hand does only have one LED, and that currently gives the same error.
-
Getting into modding my Planck. I've got a couple questions:
- Should I use the R_Shift or LED_Dimmer for adjusting the backlight intensity? The reason I ask is because the stock settings on my Planck have the LED key modifying the intensity, but also allowing shift functions.
- Is there a way to split the shift functions of the keys? I want to make my lower layer top row the shift+num symbols (!,@,#,$...) and my raised layer top row just the numbers. Currently, I can only see that you can add them both as they would normally appear, combined with shift modifying for symbols. Same goes for brackets and a few other keys.
- Is layer 2 the same as Fn2? The radial buttons at the top start with Fn1 and then go forward with Layer 2, 3 and so on. I just want to make sure I'm not missing something.
Thanks for any help!
-
Interesting plan!
If I'm understanding correctly on your base layer you need to tick 'implied shift' on the numbers to get their symbols. Then your 'shift' key is actually an FN to a copy of the baselayer with 'implied shift' on the alphas etc?
Not sure what you mean about the backlight but I'm sure it's possible too :)
-
Hey suicidal_orange.
I see theres been some progress and wanted to give it a look.
I've had some more tasks come up at work that keyboard macros would be nice whereas Easy AVR was so simple, but I couldn't get them working via TMK.
So whats the deal? I download from github and compile myself and then it should be similar to how the previous releases were?
I see python is needed, so I just use run.bat I hope and then it should be like the previous exe?
-
Interesting plan!
If I'm understanding correctly on your base layer you need to tick 'implied shift' on the numbers to get their symbols. Then your 'shift' key is actually an FN to a copy of the baselayer with 'implied shift' on the alphas etc?
Not sure what you mean about the backlight but I'm sure it's possible too :)
Thanks for getting back to me so quickly! From what I found throughout the day, I can do the implied shift to the number keys on my lower layer (fn) so as to emulate !,@,#,$,etc. In my build Q, !, 1, will be the same key. To achieve the ability to hold Fn+Q = !, I would need to check the "Shift" box and choose the SC_1_AND EXCLAMATION key?
As for the LED stuff: In general, what option from the "Set" dropdown should I use for turning LEDs on, dimming them, and any other control for them? Again, thanks!
-
Just finished getting everything good to go. The reprogramming was pretty perfect. I guess I was just making it out to be a bigger deal. Thanks for the help!
-
Hey suicidal_orange.
I see theres been some progress and wanted to give it a look.
I've had some more tasks come up at work that keyboard macros would be nice whereas Easy AVR was so simple, but I couldn't get them working via TMK.
So whats the deal? I download from github and compile myself and then it should be similar to how the previous releases were?
I see python is needed, so I just use run.bat I hope and then it should be like the previous exe?
I use Linux so have no idea about Python in Windows I'm afraid, if there's no .exe in the "build" folder under keymapper try the .bat and hope!
Once it's running it looks exactly the same as the old versio so you should be good :thumb:
To achieve the ability to hold Fn+Q = !, I would need to check the "Shift" box and choose the SC_1_AND EXCLAMATION key?
You could also put the "shift" tick on the FN key, quicker than doing it on each of the number/letter keys. As long as it doesn't break anything else on the layer...
Glad to hear you've got it working :)
-
Since my new Atreus should be on the way to me next week, i thought i'd start making a layout now. I had a play with the Software and am really impressed how easy to use it is. One thing though. I'm German, so i need the umlaut. When selecting a key and pressing "ö" on my keyboard nothing gets registered. In the drop down theres no option for ö,ä or ü. Is there some other key i'd need to choose for the umlaut being registered? Or are they missing completely? Maybe it's somewhere in the thread, but i have fund nothing on that topic yet...
-
Since my new Atreus should be on the way to me next week, i thought i'd start making a layout now. I had a play with the Software and am really impressed how easy to use it is. One thing though. I'm German, so i need the umlaut. When selecting a key and pressing "ö" on my keyboard nothing gets registered. In the drop down theres no option for ö,ä or ü. Is there some other key i'd need to choose for the umlaut being registered? Or are they missing completely? Maybe it's somewhere in the thread, but i have fund nothing on that topic yet...
Interesting case - I thought the scancodes were the same for all layouts... I've just tried using an Easy AVR board and telling the computer my Keyboard's German, and as expected the ; key (KEYCODE_SC_SEMICOLON_AND_COLON) outputs an ö (please check that's the right character, looks good to me) This is in Linux but I'm pretty sure Windows will work the same.
If in doubt use the names from the UK ISO layout and you should be good :)
-
Thanks for checking that so quickly. I'm sure I will make it work. The character you got is correct. I will be able to test it in one to two weeks. The atreus will be my first programmable keyboard...
Maybe it's an idea for a future version. Although it'll work fine, it gets a bit confusing. Maybe one could choose the language in the software to make the keys display as desired
-
Hi Y'all! I just wanted to thank OP for developing this software and sharing it with the community. This saved my paperweight TTeSports Poseidon Z, that I turned into a hand-wired TKL! Keep up the good work, can't wait until what he rolls out with next. :thumb:
-
Getting into modding my Planck. I've got a couple questions:
- Should I use the R_Shift or LED_Dimmer for adjusting the backlight intensity? The reason I ask is because the stock settings on my Planck have the LED key modifying the intensity, but also allowing shift functions.
The only function that can adjust the intensity is BL Dimmer. R_Shift is the right shift key. It doesn't make sense to try and assign two functions to the same key. Using different layers is almost certainly a more sane option.
- Is there a way to split the shift functions of the keys? I want to make my lower layer top row the shift+num symbols (!,@,#,$...) and my raised layer top row just the numbers. Currently, I can only see that you can add them both as they would normally appear, combined with shift modifying for symbols. Same goes for brackets and a few other keys.
Sounds like you already know how to do it. Remember that the keyboard has to send scancodes. Just decide what you want every key to send, and assign that. On your bottom row, give all the number keys a "with shift" option. On the upper layer, just use them normally.
- Is layer 2 the same as Fn2? The radial buttons at the top start with Fn1 and then go forward with Layer 2, 3 and so on. I just want to make sure I'm not missing something.
Thanks for any help!
Default = Layer 0, FN = layer 1, FN2 = layer 2, etc.
-
Hey suicidal_orange.
I see theres been some progress and wanted to give it a look.
I've had some more tasks come up at work that keyboard macros would be nice whereas Easy AVR was so simple, but I couldn't get them working via TMK.
So whats the deal? I download from github and compile myself and then it should be similar to how the previous releases were?
I see python is needed, so I just use run.bat I hope and then it should be like the previous exe?
I'm still working on packaging. If you want to use the version in github, what you have described will work. However, you don't have to compile anything to use it.
-
Just finished getting everything good to go. The reprogramming was pretty perfect. I guess I was just making it out to be a bigger deal. Thanks for the help!
Glad it works!
-
Since my new Atreus should be on the way to me next week, i thought i'd start making a layout now. I had a play with the Software and am really impressed how easy to use it is. One thing though. I'm German, so i need the umlaut. When selecting a key and pressing "ö" on my keyboard nothing gets registered. In the drop down theres no option for ö,ä or ü. Is there some other key i'd need to choose for the umlaut being registered? Or are they missing completely? Maybe it's somewhere in the thread, but i have fund nothing on that topic yet...
I'm sorry that it doesn't support internationalization. I just don't have the experience. All you have to do is set up your keyboard with a normal US layout, and whatever key is in the same spot as your umlaut will produce the correct character on your computer.
-
Hi Y'all! I just wanted to thank OP for developing this software and sharing it with the community. This saved my paperweight TTeSports Poseidon Z, that I turned into a hand-wired TKL! Keep up the good work, can't wait until what he rolls out with next. :thumb:
Glad it worked out for you!
-
Hi Y'all! I just wanted to thank OP for developing this software and sharing it with the community. This saved my paperweight TTeSports Poseidon Z, that I turned into a hand-wired TKL! Keep up the good work, can't wait until what he rolls out with next. :thumb:
Glad it worked out for you!
No, Thank You! People like yourself make the world less boring! ;)
-
Hey suicidal_orange.
I see theres been some progress and wanted to give it a look.
I've had some more tasks come up at work that keyboard macros would be nice whereas Easy AVR was so simple, but I couldn't get them working via TMK.
So whats the deal? I download from github and compile myself and then it should be similar to how the previous releases were?
I see python is needed, so I just use run.bat I hope and then it should be like the previous exe?
I'm still working on packaging. If you want to use the version in github, what you have described will work. However, you don't have to compile anything to use it.
Id rather steer clear of needing anymore stuff for compiling. I already raised a bunch of red flags when initially trying cygwin and mingw for TMK firmware.
I like the simplicity of your firmware, and making macros was easy. But as I mentioned a few pages ago I just had odd issues of keys repeating. TMK doesn't have that issue, so I've been sticking to that. Getting macros to work still eludes me however.
So any plans on putting up a compiled windows version of the latest? Is it different much from Easy_keymap_20150516? I know I tried about 5 different versions, older to beta and had the same behavior.
-
Hey suicidal_orange.
I see theres been some progress and wanted to give it a look.
I've had some more tasks come up at work that keyboard macros would be nice whereas Easy AVR was so simple, but I couldn't get them working via TMK.
So whats the deal? I download from github and compile myself and then it should be similar to how the previous releases were?
I see python is needed, so I just use run.bat I hope and then it should be like the previous exe?
I'm still working on packaging. If you want to use the version in github, what you have described will work. However, you don't have to compile anything to use it.
Id rather steer clear of needing anymore stuff for compiling. I already raised a bunch of red flags when initially trying cygwin and mingw for TMK firmware.
I like the simplicity of your firmware, and making macros was easy. But as I mentioned a few pages ago I just had odd issues of keys repeating. TMK doesn't have that issue, so I've been sticking to that. Getting macros to work still eludes me however.
So any plans on putting up a compiled windows version of the latest? Is it different much from Easy_keymap_20150516? I know I tried about 5 different versions, older to beta and had the same behavior.
I'm very curious about your repeating keys. I use the firmware on 8 of my own boards at home, and none of them have a repeating keys problem. I'd like to fix it, though.
How often do you get the repeating keys? Is it consistent or is it intermittent? Is it always 2 or is it more? does it happen the same on all switches or are a few switches worse than the others?
Have you tried extending the debounce time using the config console? That's what I would try first. Try extending debounce to at least 12 ms. Don't worry, it won't effect response time.
-
Hey suicidal_orange.
I see theres been some progress and wanted to give it a look.
I've had some more tasks come up at work that keyboard macros would be nice whereas Easy AVR was so simple, but I couldn't get them working via TMK.
So whats the deal? I download from github and compile myself and then it should be similar to how the previous releases were?
I see python is needed, so I just use run.bat I hope and then it should be like the previous exe?
I'm still working on packaging. If you want to use the version in github, what you have described will work. However, you don't have to compile anything to use it.
Id rather steer clear of needing anymore stuff for compiling. I already raised a bunch of red flags when initially trying cygwin and mingw for TMK firmware.
I like the simplicity of your firmware, and making macros was easy. But as I mentioned a few pages ago I just had odd issues of keys repeating. TMK doesn't have that issue, so I've been sticking to that. Getting macros to work still eludes me however.
So any plans on putting up a compiled windows version of the latest? Is it different much from Easy_keymap_20150516? I know I tried about 5 different versions, older to beta and had the same behavior.
I'm very curious about your repeating keys. I use the firmware on 8 of my own boards at home, and none of them have a repeating keys problem. I'd like to fix it, though.
How often do you get the repeating keys? Is it consistent or is it intermittent? Is it always 2 or is it more? does it happen the same on all switches or are a few switches worse than the others?
Have you tried extending the debounce time using the config console? That's what I would try first. Try extending debounce to at least 12 ms. Don't worry, it won't effect response time.
I started posting on Page 24 if you want to take a look. From what I recall it could be any key. Often once every sentence or 2, so fairly regular. it would usually start within 10 mins of flashing the firmware. I confirmed the shipped firmware bpiphany provided me did not do this. I took a few weeks to figure out TMK and this also is fine.
I will admit I see somewhat similar repeats very very rarely, once every few days, or double spacebar. However I have noticed this once or twice at home as well so I'm been meaning to look into this more. I have a pinched nerve on my left side so it usually only bothers me in the winter and I notice my hand sometimes has a bit of a shake to it at certain angles. I was thinking to retry the firmware and see if it was only keys I may have hit with my left hand. But for comparison I rarely get it with the other firmwares vs yours.
I had debounce up to I think 75 before I saw it really cutting back, but at that rate it was ruining my legit back spaces.
But basically typing as normal would repeat a key a few strokes later.
For instance, 12342567. The 2 could come back 2-3 presses later.
Everything else appeared fine. Suicidal_orange compiled some hexes for me to try and even had someone with similar setup provide me theirs off reddit and it wouldn't work right on me.
I was starting to think if some how the frosty flake may have a problem but why would other firmwares work?
bpiphany was up for letting me swap it out but I didnt want to hassle him just yet with that process him being overseas.
-
The bpiphany controllers have had this problem before, although I do use the Black Petal seemingly without issue. Have you tried the newest code from Github (version 2.0.1) ?
Let me know if it has the problem. I can make a test build for you with some extra settling time in the matrix scanning code, that has helped in the past.
-
The bpiphany controllers have had this problem before, although I do use the Black Petal seemingly without issue. Have you tried the newest code from Github (version 2.0.1) ?
Let me know if it has the problem. I can make a test build for you with some extra settling time in the matrix scanning code, that has helped in the past.
Ooh, this is definitely not better.
I built a simple layout and had crazy inputs when pressing some keys.
I tap the letter A and get this,
adsfjkl\:::::::::::::::::::::::::::::::AAAAAAAAAAAAAAA:A:AS:A:A:AS:AS:AS:AS:AS:AS:|AS:|A|S:AS:AS:|AS:|AS:|AS:|AS:||AS:|AS:AS:|AS:|AS:|AS:|s;\A\AS:\ADS:ADS:J|as;j\as;jl\s;\As;\ADJ\ADS:J\ADS:FJL\as;jads;fjl\ds;fjl\A
Until it seems to do a win+L and lock my system.
I also tried a stock layout. I set frosty flake v2, all keys, and only set right Fn/Application to Fn0 and then pause for Boot key. the rest default.
qwertyuiop seems ok but L and A at least cause the stream of spam.
Any other suggestions? I had to plug in a 2nd keyboard to recover from this. I have some .bat files to dfu-programmer erase, reload and flash some specific hexes for when the keyboard is in write mode, but locking my session I did not anticipate.
-
Okay so the new code is different enough that I had to re-do all the supported boards. That means that every board I don't own has had no testing.
Looks like you found a bug in the frosty flake support. I'll take a look when I get home.
-
Okay so the new code is different enough that I had to re-do all the supported boards. That means that every board I don't own has had no testing.
Looks like you found a bug in the frosty flake support. I'll take a look when I get home.
Aye aye cap'n. At least there is some hope now.
Side note, I have a Razer Blackwidow that has a fried chipset. You plug it in and caps/num/scrol lock leds stay on. Device manager doesnt detect it. After about 5-10 mins you smell a little bit of electrical fire. Whats the best way to have this operational again? What kind of chip can I get it for that would be able to support something like Easy AVR?
I'm guessing I would have to cut the traces on the board as I'm unsure if any would still be useful as is. it also has LEDs so I think that further complicates it.
-
Side note, I have a Razer Blackwidow that has a fried chipset. You plug it in and caps/num/scrol lock leds stay on. Device manager doesnt detect it. After about 5-10 mins you smell a little bit of electrical fire. Whats the best way to have this operational again? What kind of chip can I get it for that would be able to support something like Easy AVR?
I'm guessing I would have to cut the traces on the board as I'm unsure if any would still be useful as is. it also has LEDs so I think that further complicates it.
Is that a fullsize? If so the matrix is probably too big for an ATMEGA32u4, so your best option would probably be a Teensy 2.0++
Desolder the existing controller chip, map out the matrix and connect it to the Teensy - the end result will look something like my Ducky (working perfectly for over a year as my main board :thumb:)
(http://i.imgur.com/NZXdG2i.jpg)
Downside? No EasyAVR, though Metalliqaz said it wouldn't be that hard so you could ask nicely. Mine runs Soarer's firmware which is easy enough for a single layer, never bothered going further...
-
Side note, I have a Razer Blackwidow that has a fried chipset. You plug it in and caps/num/scrol lock leds stay on. Device manager doesnt detect it. After about 5-10 mins you smell a little bit of electrical fire. Whats the best way to have this operational again? What kind of chip can I get it for that would be able to support something like Easy AVR?
I'm guessing I would have to cut the traces on the board as I'm unsure if any would still be useful as is. it also has LEDs so I think that further complicates it.
Is that a fullsize? If so the matrix is probably too big for an ATMEGA32u4, so your best option would probably be a Teensy 2.0++
Desolder the existing controller chip, map out the matrix and connect it to the Teensy - the end result will look something like my Ducky (working perfectly for over a year as my main board :thumb:)
Show Image
(http://i.imgur.com/NZXdG2i.jpg)
Downside? No EasyAVR, though Metalliqaz said it wouldn't be that hard so you could ask nicely. Mine runs Soarer's firmware which is easy enough for a single layer, never bothered going further...
Funny you should put a Ducky as I picked one up a few months ago on ebay, Shine1 and never got around to using it because thats right when I also got the QFR to try TKL.
I was wondering how practical it would be to get a different controller in as well. I actually use the Application key so not having that is a bit annoying. There is no real way to emulate that with autohotkey or anything since that function key is on a hardware level, correct?
I have a coworker that liked my white keys on black and ended up getting a WASD keyboard and he has the same problem. At least he has dip switches to set it back to Application.
Yea, the Razer is Full size. In addition it also has 5 extra keys on the left that the Razer software lets you bind to either keys or macros, so I would probably have wanted to try and get those in the matrix as well.
-
Side note, I have a Razer Blackwidow that has a fried chipset. You plug it in and caps/num/scrol lock leds stay on. Device manager doesnt detect it. After about 5-10 mins you smell a little bit of electrical fire. Whats the best way to have this operational again? What kind of chip can I get it for that would be able to support something like Easy AVR?
I'm guessing I would have to cut the traces on the board as I'm unsure if any would still be useful as is. it also has LEDs so I think that further complicates it.
Is that a fullsize? If so the matrix is probably too big for an ATMEGA32u4, so your best option would probably be a Teensy 2.0++
Desolder the existing controller chip, map out the matrix and connect it to the Teensy - the end result will look something like my Ducky (working perfectly for over a year as my main board :thumb:)
Show Image
(http://i.imgur.com/NZXdG2i.jpg)
Downside? No EasyAVR, though Metalliqaz said it wouldn't be that hard so you could ask nicely. Mine runs Soarer's firmware which is easy enough for a single layer, never bothered going further...
Dude I've been looking for a reason to port it to the AT90USB128 / Teensy 2.0 ++
I'll make a build today!
-
Side note, I have a Razer Blackwidow that has a fried chipset. You plug it in and caps/num/scrol lock leds stay on. Device manager doesnt detect it. After about 5-10 mins you smell a little bit of electrical fire. Whats the best way to have this operational again? What kind of chip can I get it for that would be able to support something like Easy AVR?
I'm guessing I would have to cut the traces on the board as I'm unsure if any would still be useful as is. it also has LEDs so I think that further complicates it.
Is that a fullsize? If so the matrix is probably too big for an ATMEGA32u4, so your best option would probably be a Teensy 2.0++
Desolder the existing controller chip, map out the matrix and connect it to the Teensy - the end result will look something like my Ducky (working perfectly for over a year as my main board :thumb:)
Show Image
(http://i.imgur.com/NZXdG2i.jpg)
ownside? No EasyAVR, though Metalliqaz said it wouldn't be that hard so you could ask nicely. Mine runs Soarer's firmware which is easy enough for a single layer, never bothered going further...
Dude I've been looking for a reason to port it to the AT90USB128 / Teensy 2.0 ++
I'll make a build today!
Thats some good news. I may look into breathing some life into that Razer.
On a side note, whats the best place to get some cherry mx clears? I have Blues on my home pc and browns in the work pc.
Theyre ok, but I really wanted to try clears. The razer and ducky are both browns so I have more than enough of those.
-
Side note, I have a Razer Blackwidow that has a fried chipset. You plug it in and caps/num/scrol lock leds stay on. Device manager doesnt detect it. After about 5-10 mins you smell a little bit of electrical fire. Whats the best way to have this operational again? What kind of chip can I get it for that would be able to support something like Easy AVR?
I'm guessing I would have to cut the traces on the board as I'm unsure if any would still be useful as is. it also has LEDs so I think that further complicates it.
Is that a fullsize? If so the matrix is probably too big for an ATMEGA32u4, so your best option would probably be a Teensy 2.0++
Desolder the existing controller chip, map out the matrix and connect it to the Teensy - the end result will look something like my Ducky (working perfectly for over a year as my main board :thumb:)
Show Image
(http://i.imgur.com/NZXdG2i.jpg)
Downside? No EasyAVR, though Metalliqaz said it wouldn't be that hard so you could ask nicely. Mine runs Soarer's firmware which is easy enough for a single layer, never bothered going further...
Dear god suicidal_orange...
[SNIP]
Dude I've been looking for a reason to port it to the AT90USB128 / Teensy 2.0 ++
I'll make a build today!
That would be great for those of us looking to make slightly bigger custom layouts! :thumb:
-
Funny you should put a Ducky as I picked one up a few months ago on ebay, Shine1 and never got around to using it because thats right when I also got the QFR to try TKL.
I was wondering how practical it would be to get a different controller in as well. I actually use the Application key so not having that is a bit annoying. There is no real way to emulate that with autohotkey or anything since that function key is on a hardware level, correct?
I have a coworker that liked my white keys on black and ended up getting a WASD keyboard and he has the same problem. At least he has dip switches to set it back to Application.
Yea, the Razer is Full size. In addition it also has 5 extra keys on the left that the Razer software lets you bind to either keys or macros, so I would probably have wanted to try and get those in the matrix as well.
Well if the Ducky is the same as mine I've done most of the hard work (mapping it - see below) but I don't think you'll get to keep the "shine" part. One thing you could do is cut the traces to the FN key (wire a jumper around it if it's going to take out a whole bunch of keys - probably will) and connect the switch pins to a vacant ISO switch position which should give you a new scancode which you can autohotkey to something useful. I want to say it's the one next to Z... Test before soldering.
More
(http://i.imgur.com/mVDTTwb.png)
5 extra keys on the Razer? No problem - the Teensy 2.0++ has a lot of pins!
Dude I've been looking for a reason to port it to the AT90USB128 / Teensy 2.0 ++
I'll make a build today!
Oh god, I can't even get the nice sane matrix in my GH60 work with the new version - that's my task for the next couple of hours. The craziness that is Ducky? That's just scary! (see mapping document above) Would be great for big customs though...
Dear god suicidal_orange...
My first mech - bought it broken then learned how keyboards work while fixing it :thumb:
-
Funny you should put a Ducky as I picked one up a few months ago on ebay, Shine1 and never got around to using it because thats right when I also got the QFR to try TKL.
I was wondering how practical it would be to get a different controller in as well. I actually use the Application key so not having that is a bit annoying. There is no real way to emulate that with autohotkey or anything since that function key is on a hardware level, correct?
I have a coworker that liked my white keys on black and ended up getting a WASD keyboard and he has the same problem. At least he has dip switches to set it back to Application.
Yea, the Razer is Full size. In addition it also has 5 extra keys on the left that the Razer software lets you bind to either keys or macros, so I would probably have wanted to try and get those in the matrix as well.
Well if the Ducky is the same as mine I've done most of the hard work (mapping it - see below) but I don't think you'll get to keep the "shine" part. One thing you could do is cut the traces to the FN key (wire a jumper around it if it's going to take out a whole bunch of keys - probably will) and connect the switch pins to a vacant ISO switch position which should give you a new scancode which you can autohotkey to something useful. I want to say it's the one next to Z... Test before soldering.
More
Show Image
(http://i.imgur.com/mVDTTwb.png)
5 extra keys on the Razer? No problem - the Teensy 2.0++ has a lot of pins!
Dude I've been looking for a reason to port it to the AT90USB128 / Teensy 2.0 ++
I'll make a build today!
Oh god, I can't even get the nice sane matrix in my GH60 work with the new version - that's my task for the next couple of hours. The craziness that is Ducky? That's just scary! (see mapping document above) Would be great for big customs though...
Dear god suicidal_orange...
My first mech - bought it broken then learned how keyboards work while fixing it :thumb:
Sadly that wiring doesn't faze me. I learned how doing arcade stick->360 mods. Sloppy but same idea. First pad did not have a common ground so each button needed both pins wired separately. Then eventually I graduated to 360 modchips and even did a trace repair I messed up.
So when I see that, it just needs time. I'm hoping to find a cheap board with clears (i keep forgetting to check ebay every day) and desolder em and swap with my browns.
What price should a Teensy2++ usually fetch so I can keep an eye out?
i havent used AVR for anything LED really, so if Metal adds the support, we can still set brightness levels and what not?
It would be a good board for my daughter, getting her into pc gaming.
-
Sadly that wiring doesn't faze me. I learned how doing arcade stick->360 mods. Sloppy but same idea. First pad did not have a common ground so each button needed both pins wired separately. Then eventually I graduated to 360 modchips and even did a trace repair I messed up.
So when I see that, it just needs time. I'm hoping to find a cheap board with clears (i keep forgetting to check ebay every day) and desolder em and swap with my browns.
What price should a Teensy2++ usually fetch so I can keep an eye out?
i havent used AVR for anything LED really, so if Metal adds the support, we can still set brightness levels and what not?
It would be a good board for my daughter, getting her into pc gaming.
The wiring is the easy bit, it was the playing "guess what's connected to what?" where the diodes are nowhere near their associated switch so you have to find the diode and note the switch, then find which other diodes it's connected to and note that as a row/column. Plus there are big holes in the matrix on the side that's directly connected. Sounds like you're up to the task though if needs be.
The 2.0++ is only $24 direct (https://www.pjrc.com/store/teensypp.html), I paid way more than that but being non-US I'm used to that!
I guess if you connect the 5v and some control pins in the correct places the LEDs could be made to work with a Teensy but mine is not a Shine so it's not something I tried to do (there aren't even resistors for easy add-your-own...)
-
Back on topic, I'm looking at my GH60revC and am pretty sure it's config'ed backwards as TMK has "Read cols" while EasyAVR has "Matrix strobe" with the 14 pins. I've tried all combinations of strobe_cols and strobe_low so at this point I'm guessing that I need to swap them over.
It seems the "Port mask" is used to define which pins are either unavailable or are used for LEDs with a 0, where the right digit is pin x0 and counting up going left. Then the "Dir mask" additionally zeroes out any pins used for sensing?
This left me with this (#pin line from TMK)
#pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.B/C)
matrix_hardware = [
# Port mask Dir mask
( 0b11111010 , 0b11111010 ), # REF_PORTB
( 0b11000000 , 0b11000000 ), # REF_PORTC
( 0b11111111 , 0b11010000 ), # REF_PORTD
( 0b01000000 , 0b01000000 ), # REF_PORTE
( 0b00000011 , 0b00000011 ) # REF_PORTF
]
Next the strobing. Seems to require the Port mask from above, but adding whichever pin you want to strobe as an extra 1 - only 5 pins so 5 lines.
#row: 0 1 2 3 4
#pin: D0 D1 D2 D3 D5
matrix_strobe = [
# REF_PORTB REF_PORTC REF_PORTD REF_PORTE REF_PORTF
( 0b11111010 , 0b11000000 , 0b11010001 , 0b01000000 , 0b00000011 ),
( 0b11111010 , 0b11000000 , 0b11010010 , 0b01000000 , 0b00000011 ),
( 0b11111010 , 0b11000000 , 0b11010100 , 0b01000000 , 0b00000011 ),
( 0b11111010 , 0b11000000 , 0b11011000 , 0b01000000 , 0b00000011 ),
( 0b11111010 , 0b11000000 , 0b11110000 , 0b01000000 , 0b00000011 )
]
Lastly sensing which for whatever reason isn't binarized. Now there are lots of these...
matrix_sense = [
# Port Pin mask
( REF_PORTF , (1 << 0) ),
( REF_PORTF , (1 << 1) ),
( REF_PORTE , (1 << 6) ),
( REF_PORTC , (1 << 7) ),
( REF_PORTC , (1 << 6) ),
( REF_PORTB , (1 << 6) ),
( REF_PORTD , (1 << 4) ),
( REF_PORTB , (1 << 1) ),
( REF_PORTB , (1 << 7) ),
( REF_PORTB , (1 << 5) ),
( REF_PORTB , (1 << 4) ),
( REF_PORTD , (1 << 7) ),
( REF_PORTD , (1 << 6) ),
( REF_PORTB , (1 << 3) )
]
Built fine with this config, but no output from the switches or when shorting them bypassing the diode. Am I misunderstanding or is it just a typo?
-
Back on topic, I'm looking at my GH60revC and am pretty sure it's config'ed backwards as TMK has "Read cols" while EasyAVR has "Matrix strobe" with the 14 pins. I've tried all combinations of strobe_cols and strobe_low so at this point I'm guessing that I need to swap them over.
How exactly is Rev C different from Rev B? TMK firmware only claims to support A and B
-
Okay, suicidal_orange, here is the GH60 code currently in the repo:
num_rows = 5
num_cols = 14
strobe_cols = True
strobe_low = True
matrix_hardware = [
# Port mask Dir mask
( 0b11111010 , 0b11111010 ), # REF_PORTB
( 0b11000000 , 0b11000000 ), # REF_PORTC
( 0b11111111 , 0b11010000 ), # REF_PORTD
( 0b01000000 , 0b01000000 ), # REF_PORTE
( 0b00000011 , 0b00000011 ) # REF_PORTF
]
matrix_strobe = [
# REF_PORTB REF_PORTC REF_PORTD REF_PORTE REF_PORTF
( 0b11111010 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000010 ),
( 0b11111010 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000001 ),
( 0b11111010 , 0b11000000 , 0b11010000 , 0b00000000 , 0b00000011 ),
( 0b11111010 , 0b01000000 , 0b11010000 , 0b01000000 , 0b00000011 ),
( 0b11111010 , 0b10000000 , 0b11010000 , 0b01000000 , 0b00000011 ),
( 0b10111010 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000011 ),
( 0b11111010 , 0b11000000 , 0b11000000 , 0b01000000 , 0b00000011 ),
( 0b11111000 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000011 ),
( 0b01111010 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000011 ),
( 0b11011010 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000011 ),
( 0b11101010 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000011 ),
( 0b11111010 , 0b11000000 , 0b01010000 , 0b01000000 , 0b00000011 ),
( 0b11111010 , 0b11000000 , 0b10010000 , 0b01000000 , 0b00000011 ),
( 0b11110010 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000011 )
]
matrix_sense = [
# Port Pin mask
( REF_PORTD , (1 << 0) ),
( REF_PORTD , (1 << 1) ),
( REF_PORTD , (1 << 2) ),
( REF_PORTD , (1 << 3) ),
( REF_PORTD , (1 << 5) )
]
Here is the same layout, but reversed:
num_rows = 5
num_cols = 14
strobe_cols = False
strobe_low = True
matrix_hardware = [
# Port mask Dir mask
( 0b11111010 , 0b00000000 ), # REF_PORTB
( 0b11000000 , 0b00000000 ), # REF_PORTC
( 0b11111111 , 0b00101111 ), # REF_PORTD
( 0b01000000 , 0b00000000 ), # REF_PORTE
( 0b00000011 , 0b00000000 ) # REF_PORTF
]
matrix_strobe = [
# REF_PORTB REF_PORTC REF_PORTD REF_PORTE REF_PORTF
( 0b00000000 , 0b00000000 , 0b00101110 , 0b00000000 , 0b00000000 ),
( 0b00000000 , 0b00000000 , 0b00101101 , 0b00000000 , 0b00000000 ),
( 0b00000000 , 0b00000000 , 0b00101011 , 0b00000000 , 0b00000000 ),
( 0b00000000 , 0b00000000 , 0b00100111 , 0b00000000 , 0b00000000 ),
( 0b00000000 , 0b00000000 , 0b00001111 , 0b00000000 , 0b00000000 )
]
matrix_sense = [
# Port Pin mask
( REF_PORTF , (1 << 0) ),
( REF_PORTF , (1 << 1) ),
( REF_PORTE , (1 << 6) ),
( REF_PORTC , (1 << 7) ),
( REF_PORTC , (1 << 6) ),
( REF_PORTB , (1 << 6) ),
( REF_PORTD , (1 << 4) ),
( REF_PORTB , (1 << 1) ),
( REF_PORTB , (1 << 7) ),
( REF_PORTB , (1 << 5) ),
( REF_PORTB , (1 << 4) ),
( REF_PORTD , (1 << 7) ),
( REF_PORTD , (1 << 6) ),
( REF_PORTB , (1 << 3) )
]
Notice the differences. strobe_cols is now False in the later code, so it strobes the rows and senses the columns, and the direction masks are different.
Let me know if it works, I will commit it
-
Dude I've been looking for a reason to port it to the AT90USB128 / Teensy 2.0 ++
I'll make a build today!
You're a godsend! I have a full size mechanical keyboard that has a bad controller. Would love to see your software support full size hand-fixed matrix's! :thumb:
-
I wrote thr basic support in tonight, but i have no way to test it. It's a 6x22 matrix for teensy2++ (at90usb1286)
-
I wrote thr basic support in tonight, but i have no way to test it. It's a 6x22 matrix for teensy2++ (at90usb1286)
:thumb: :thumb: :thumb: ;D
-
This has version numbers? I thought it used dates... The latest says version 13 in "About" but there have been way more than 13 builds.
Can you post your config so I can try and debug? If it builds without tweaks it should build with them :)
I was using the beta one, i will also try the latest.
http://i.imgur.com/jPyeYyb.png
The beta is the latest. Who'd want to use an out of date one?! :))
I'll have a look now.
so i dont get the errors as before, but once i load the hex onto the teensy. I cant get anything to show up. I just dont get whats going on.
-
Back on topic, I'm looking at my GH60revC and am pretty sure it's config'ed backwards as TMK has "Read cols" while EasyAVR has "Matrix strobe" with the 14 pins. I've tried all combinations of strobe_cols and strobe_low so at this point I'm guessing that I need to swap them over.
How exactly is Rev C different from Rev B? TMK firmware only claims to support A and B
Officially I have no idea, but if I had to guess it has more LEDs wired up as the matrix works just fine with TMK. Never got the Caps LED to work though... LEDs are next on my to-do list once it works.
Okay, suicidal_orange, here is the GH60 code currently in the repo:
num_rows = 5
num_cols = 14
strobe_cols = True
strobe_low = True
matrix_hardware = [
# Port mask Dir mask
( 0b11111010 , 0b11111010 ), # REF_PORTB
( 0b11000000 , 0b11000000 ), # REF_PORTC
( 0b11111111 , 0b11010000 ), # REF_PORTD
( 0b01000000 , 0b01000000 ), # REF_PORTE
( 0b00000011 , 0b00000011 ) # REF_PORTF
]
matrix_strobe = [
# REF_PORTB REF_PORTC REF_PORTD REF_PORTE REF_PORTF
( 0b11111010 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000010 ),
( 0b11111010 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000001 ),
( 0b11111010 , 0b11000000 , 0b11010000 , 0b00000000 , 0b00000011 ),
( 0b11111010 , 0b01000000 , 0b11010000 , 0b01000000 , 0b00000011 ),
( 0b11111010 , 0b10000000 , 0b11010000 , 0b01000000 , 0b00000011 ),
( 0b10111010 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000011 ),
( 0b11111010 , 0b11000000 , 0b11000000 , 0b01000000 , 0b00000011 ),
( 0b11111000 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000011 ),
( 0b01111010 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000011 ),
( 0b11011010 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000011 ),
( 0b11101010 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000011 ),
( 0b11111010 , 0b11000000 , 0b01010000 , 0b01000000 , 0b00000011 ),
( 0b11111010 , 0b11000000 , 0b10010000 , 0b01000000 , 0b00000011 ),
( 0b11110010 , 0b11000000 , 0b11010000 , 0b01000000 , 0b00000011 )
]
matrix_sense = [
# Port Pin mask
( REF_PORTD , (1 << 0) ),
( REF_PORTD , (1 << 1) ),
( REF_PORTD , (1 << 2) ),
( REF_PORTD , (1 << 3) ),
( REF_PORTD , (1 << 5) )
]
Here is the same layout, but reversed:
num_rows = 5
num_cols = 14
strobe_cols = False
strobe_low = True
matrix_hardware = [
# Port mask Dir mask
( 0b11111010 , 0b00000000 ), # REF_PORTB
( 0b11000000 , 0b00000000 ), # REF_PORTC
( 0b11111111 , 0b00101111 ), # REF_PORTD
( 0b01000000 , 0b00000000 ), # REF_PORTE
( 0b00000011 , 0b00000000 ) # REF_PORTF
]
matrix_strobe = [
# REF_PORTB REF_PORTC REF_PORTD REF_PORTE REF_PORTF
( 0b00000000 , 0b00000000 , 0b00101110 , 0b00000000 , 0b00000000 ),
( 0b00000000 , 0b00000000 , 0b00101101 , 0b00000000 , 0b00000000 ),
( 0b00000000 , 0b00000000 , 0b00101011 , 0b00000000 , 0b00000000 ),
( 0b00000000 , 0b00000000 , 0b00100111 , 0b00000000 , 0b00000000 ),
( 0b00000000 , 0b00000000 , 0b00001111 , 0b00000000 , 0b00000000 )
]
matrix_sense = [
# Port Pin mask
( REF_PORTF , (1 << 0) ),
( REF_PORTF , (1 << 1) ),
( REF_PORTE , (1 << 6) ),
( REF_PORTC , (1 << 7) ),
( REF_PORTC , (1 << 6) ),
( REF_PORTB , (1 << 6) ),
( REF_PORTD , (1 << 4) ),
( REF_PORTB , (1 << 1) ),
( REF_PORTB , (1 << 7) ),
( REF_PORTB , (1 << 5) ),
( REF_PORTB , (1 << 4) ),
( REF_PORTD , (1 << 7) ),
( REF_PORTD , (1 << 6) ),
( REF_PORTB , (1 << 3) )
]
Notice the differences. strobe_cols is now False in the later code, so it strobes the rows and senses the columns, and the direction masks are different.
Let me know if it works, I will commit it
I'd love to understand this so will have a look through tonight as well as testing it - can't help but notice my strobe has many more 1's for a start :))
I wrote thr basic support in tonight, but i have no way to test it. It's a 6x22 matrix for teensy2++ (at90usb1286)
Far too sane for my Ducky but I have another 2++ sat on my desk for testing :thumb:
so i dont get the errors as before, but once i load the hex onto the teensy. I cant get anything to show up. I just dont get whats going on.
Are you using the build from the OP or from the new version in github?
-
Okay so the new code is different enough that I had to re-do all the supported boards. That means that every board I don't own has had no testing.
Looks like you found a bug in the frosty flake support. I'll take a look when I get home.
Aye aye cap'n. At least there is some hope now.
Side note, I have a Razer Blackwidow that has a fried chipset. You plug it in and caps/num/scrol lock leds stay on. Device manager doesnt detect it. After about 5-10 mins you smell a little bit of electrical fire. Whats the best way to have this operational again? What kind of chip can I get it for that would be able to support something like Easy AVR?
I'm guessing I would have to cut the traces on the board as I'm unsure if any would still be useful as is. it also has LEDs so I think that further complicates it.
By the way, which Frosty Flake do you have? V1 or v2?
-
By the way, which Frosty Flake do you have? V1 or v2?
Its a v2.
Sadly that wiring doesn't faze me. I learned how doing arcade stick->360 mods. Sloppy but same idea. First pad did not have a common ground so each button needed both pins wired separately. Then eventually I graduated to 360 modchips and even did a trace repair I messed up.
So when I see that, it just needs time. I'm hoping to find a cheap board with clears (i keep forgetting to check ebay every day) and desolder em and swap with my browns.
What price should a Teensy2++ usually fetch so I can keep an eye out?
i havent used AVR for anything LED really, so if Metal adds the support, we can still set brightness levels and what not?
It would be a good board for my daughter, getting her into pc gaming.
The wiring is the easy bit, it was the playing "guess what's connected to what?" where the diodes are nowhere near their associated switch so you have to find the diode and note the switch, then find which other diodes it's connected to and note that as a row/column. Plus there are big holes in the matrix on the side that's directly connected. Sounds like you're up to the task though if needs be.
The 2.0++ is only $24 direct (https://www.pjrc.com/store/teensypp.html), I paid way more than that but being non-US I'm used to that!
I guess if you connect the 5v and some control pins in the correct places the LEDs could be made to work with a Teensy but mine is not a Shine so it's not something I tried to do (there aren't even resistors for easy add-your-own...)
Yes, I like this kind of madness. Ill definitely give this a look. I guess the real issue comes on trying to use existing traces and resistors/diodes. Worst case I guess I could manually wire it all and then cut traces periodically on the board to get rid of shorts.
-
Sadly that wiring doesn't faze me. I learned how doing arcade stick->360 mods. Sloppy but same idea. First pad did not have a common ground so each button needed both pins wired separately. Then eventually I graduated to 360 modchips and even did a trace repair I messed up.
So when I see that, it just needs time. I'm hoping to find a cheap board with clears (i keep forgetting to check ebay every day) and desolder em and swap with my browns.
What price should a Teensy2++ usually fetch so I can keep an eye out?
i havent used AVR for anything LED really, so if Metal adds the support, we can still set brightness levels and what not?
It would be a good board for my daughter, getting her into pc gaming.
Something like this? I feel your pain on the whole no common ground thing on the 360 controller. I did something similar on the original xbox to wire up NES controllers and that one did have common ground, much easier.
(http://i967.photobucket.com/albums/ae156/jbedwell81/IMG_20120317_001101_zpsf036ea2c.jpg)
So yeah, that Ducky wiring doesn't look too bad. However, I'd love to put custom firmware on my ducky but still not sure I'd want to go through all that for it.
-
so i dont get the errors as before, but once i load the hex onto the teensy. I cant get anything to show up. I just dont get whats going on.
Are you using the build from the OP or from the new version in github?
I have tried using both.
-
num_rows = 5
num_cols = 14
strobe_cols = False
strobe_low = True
matrix_hardware = [
# Port mask Dir mask
( 0b11111010 , 0b00000000 ), # REF_PORTB
( 0b11000000 , 0b00000000 ), # REF_PORTC
( 0b11111111 , 0b00101111 ), # REF_PORTD
( 0b01000000 , 0b00000000 ), # REF_PORTE
( 0b00000011 , 0b00000000 ) # REF_PORTF
]
matrix_strobe = [
# REF_PORTB REF_PORTC REF_PORTD REF_PORTE REF_PORTF
( 0b00000000 , 0b00000000 , 0b00101110 , 0b00000000 , 0b00000000 ),
( 0b00000000 , 0b00000000 , 0b00101101 , 0b00000000 , 0b00000000 ),
( 0b00000000 , 0b00000000 , 0b00101011 , 0b00000000 , 0b00000000 ),
( 0b00000000 , 0b00000000 , 0b00100111 , 0b00000000 , 0b00000000 ),
( 0b00000000 , 0b00000000 , 0b00001111 , 0b00000000 , 0b00000000 )
]
matrix_sense = [
# Port Pin mask
( REF_PORTF , (1 << 0) ),
( REF_PORTF , (1 << 1) ),
( REF_PORTE , (1 << 6) ),
( REF_PORTC , (1 << 7) ),
( REF_PORTC , (1 << 6) ),
( REF_PORTB , (1 << 6) ),
( REF_PORTD , (1 << 4) ),
( REF_PORTB , (1 << 1) ),
( REF_PORTB , (1 << 7) ),
( REF_PORTB , (1 << 5) ),
( REF_PORTB , (1 << 4) ),
( REF_PORTD , (1 << 7) ),
( REF_PORTD , (1 << 6) ),
( REF_PORTB , (1 << 3) )
]
Notice the differences. strobe_cols is now False in the later code, so it strobes the rows and senses the columns, and the direction masks are different.
Let me know if it works, I will commit it
1234567890-=`
qwertyuiop[]
asdfghjkl;'#
\zxcvbnm,./
Looking good! Strangely though caps lock didn't work, but remaping it to ctrl the key did - is there any chance you broke the scancode? :confused:
-
so i dont get the errors as before, but once i load the hex onto the teensy. I cant get anything to show up. I just dont get whats going on.
Are you using the build from the OP or from the new version in github?
I have tried using both.
What board is this again?
-
Looking good! Strangely though caps lock didn't, but remaping it to ctrl the key did - is there any chance you broke the scancode? :confused:
hmmm, sounds like the matrix location of that key is programmed wrong. Right now I've got it as (2,0) and that seems to match up with TMK. If you can map caps to a different key then the scancode is fine. Could this possibly be a Rev.C change? I assume this is the only key on the board that doesn't work.
I can try and look more tonight. It's so great that the GH60 is finally getting some testing!
-
I tried to search the thread as best as possible, but at 28 pages... Do the media SCANCODE_PREV_TRACK (0xB5) and SCANCODE_NEXT_TRACK (0xB4) work correctly on the Mac? TMK had the issue (https://github.com/tmk/tmk_keyboard/issues/195) where they had to change to rewind and fast-forward for the Mac. I'm thinking of grabbing a QFR + Frosty Flake, and all I want extra is Play/Pause, Next & Previous Track, Volume Up & Down.
-
Looking good! Strangely though caps lock didn't, but remaping it to ctrl the key did - is there any chance you broke the scancode? :confused:
hmmm, sounds like the matrix location of that key is programmed wrong. Right now I've got it as (2,0) and that seems to match up with TMK. If you can map caps to a different key then the scancode is fine. Could this possibly be a Rev.C change? I assume this is the only key on the board that doesn't work.
I can try and look more tonight. It's so great that the GH60 is finally getting some testing!
Further testing completed - not sure what I was doing wrong but clearly something, as caps lock now works perfectly on a layer and the key works just fine as ctrl on the default layer.
The "All keys" layout is confirmed as all working, the only strangeness is that if you use a 1u-1.75u right shift split the keys are swapped compared to their matrix positions, so by default FN is inside shift. It's a hardware issue but worth noting if anyone queries it.
Thanks for your help and sorry for the false alarm, I will resume attempting to add some LEDs.
Edit: Caps lock LED works - EasyAVR is now more functional than TMK on the GH60 :thumb:
-
so i dont get the errors as before, but once i load the hex onto the teensy. I cant get anything to show up. I just dont get whats going on.
Are you using the build from the OP or from the new version in github?
I have tried using both.
What board is this again?
Handwired teensy 2.0
-
so i dont get the errors as before, but once i load the hex onto the teensy. I cant get anything to show up. I just dont get whats going on.
Are you using the build from the OP or from the new version in github?
I have tried using both.
What board is this again?
Handwired teensy 2.0
What did your config look like for the new version? Don't forget the [ code] tags :)
-
so i dont get the errors as before, but once i load the hex onto the teensy. I cant get anything to show up. I just dont get whats going on.
Are you using the build from the OP or from the new version in github?
I have tried using both.
What board is this again?
Handwired teensy 2.0
What did your config look like for the new version? Don't forget the [ code] tags :)
you mean the pinouts?
[PHANTOM]
ROW0=F0
ROW1=F1
ROW2=F4
ROW3=F5
ROW4=F6
ROW5=F7
COL0=B1
COL1=B2
COL2=B3
COL3=B7
COL4=D0
COL5=D1
COL6=D2
COL7=D3
COL8=C6
COL9=C7
COL10=D5
COL11=D6
COL12=D7
COL13=B4
COL14=B5
COL15=B6
COL16=NA
COL17=NA
LED0=B0
LED1=NA
LED2=NA
LED3=NA
I think it made me set atleast one led. so i used one i wasn't using.
-
Handwired teensy 2.0
What did your config look like for the new version? Don't forget the [ code] tags :)
you mean the pinouts?
That's the old version, the new one's only been around a week or so :)
Metalliqaz - is the plan for a "handwire" with a simple options file like last time or will all custom layouts need the sense/scan binary stuff done like the pre-made ones? My coding skills aren't up to helping improve the backend, but I could do some serious spreadsheet abuse to generate config files based on a choice of controller (for available pins), a "which pins used where" list, and diode orientation. No point if you're planning something easier though...
-
Handwired teensy 2.0
What did your config look like for the new version? Don't forget the [ code] tags :)
you mean the pinouts?
That's the old version, the new one's only been around a week or so :)
Metalliqaz - is the plan for a "handwire" with a simple options file like last time or will all custom layouts need the sense/scan binary stuff done like the pre-made ones? My coding skills aren't up to helping improve the backend, but I could do some serious spreadsheet abuse to generate config files based on a choice of controller (for available pins), a "which pins used where" list, and diode orientation. No point if you're planning something easier though...
The Handwire plan was ****. I tossed it. The new method will be to make a new python config just like all the others.
I will make an example, as well as some helper functions that should make it very easy to set up with essentially the same information from the old .ini file.
-
Looking good! Strangely though caps lock didn't, but remaping it to ctrl the key did - is there any chance you broke the scancode? :confused:
hmmm, sounds like the matrix location of that key is programmed wrong. Right now I've got it as (2,0) and that seems to match up with TMK. If you can map caps to a different key then the scancode is fine. Could this possibly be a Rev.C change? I assume this is the only key on the board that doesn't work.
I can try and look more tonight. It's so great that the GH60 is finally getting some testing!
Further testing completed - not sure what I was doing wrong but clearly something, as caps lock now works perfectly on a layer and the key works just fine as ctrl on the default layer.
The "All keys" layout is confirmed as all working, the only strangeness is that if you use a 1u-1.75u right shift split the keys are swapped compared to their matrix positions, so by default FN is inside shift. It's a hardware issue but worth noting if anyone queries it.
Thanks for your help and sorry for the false alarm, I will resume attempting to add some LEDs.
Edit: Caps lock LED works - EasyAVR is now more functional than TMK on the GH60 :thumb:
Not a hardware issue, gotta be a problem with the layout. Sounds like the (3,12) and (3,13) need to be flipped.
So what are the LEDs in the rev c? it has more than 1 now?
-
Alright it's done. This is a helluva lot easier way to configure the GH60, no?
num_rows = 5
num_cols = 14
strobe_cols = False
strobe_low = True
matrix_hardware, matrix_strobe, matrix_sense = make_config(
strobe_cols=strobe_cols,
strobe_low=strobe_low,
rows=[D0, D1, D2, D3, D5],
cols=[F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3],
device=firmware.device
)
-
Annotated example of a handwired board: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/boards/handwire.py
-
Its a v2.
Found a bug, committed a fix. Hopefully that works.
-
The "All keys" layout is confirmed as all working, the only strangeness is that if you use a 1u-1.75u right shift split the keys are swapped compared to their matrix positions, so by default FN is inside shift. It's a hardware issue but worth noting if anyone queries it.
Not a hardware issue, gotta be a problem with the layout. Sounds like the (3,12) and (3,13) need to be flipped.
So what are the LEDs in the rev c? it has more than 1 now?
No it's definitely hardware, there are multiple positions for the switches - you can have a big shift, 1.75-1 as in HHKB or 1-1.75 as I've done, the last option reverses them (looking at the pads I can see why they did it - way easier!) I guess you'd need a new version of each layout for this option, including "all keys" - hardly seems worth it.
poker arrows LEDs are routed to PF4; WASD to PF7; Caps to PB2; Esc to PF6. All of them are active LOW.
Will have a look at the handwire stuff tonight - looks way easier! :)
-
Alright it's done. This is a helluva lot easier way to configure the GH60, no?
num_rows = 5
num_cols = 14
strobe_cols = False
strobe_low = True
matrix_hardware, matrix_strobe, matrix_sense = make_config(
strobe_cols=strobe_cols,
strobe_low=strobe_low,
rows=[D0, D1, D2, D3, D5],
cols=[F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3],
device=firmware.device
)
Can't really see on my phone, is this an updated version? IAnnotated example of a handwired board: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/boards/handwire.py
I feel bad, but how do I implement this to help my situation. Thanks again.
-
Its a v2.
Found a bug, committed a fix. Hopefully that works.
So far so good. All keys and bindings appear ok.
I'll run it a bit and see if I encounter the multi hits.
Is there any documentation for more depth regarding macro programming? I see I can just type in characters for straight text entry, but how can I do items like sending tabs, alt-tabs, etc? We have a "new" ticketing system thats browser based and doesn't allow any templates so I spend more time filling in fields than actual work.
Edit: So far from mild use like a few brief entries in a form, spreadsheet, is fine.
Once I go to type up an email or something more in depth I've seen a few. It looks like H has done it twice, "don’t know whaht" and "its thhe weather"
I had one case of a spacebar delay so far, "you l ose"
I will keep you posted. It definitely feels a lot better than I remember.
-
Its a v2.
Found a bug, committed a fix. Hopefully that works.
So far so good. All keys and bindings appear ok.
I'll run it a bit and see if I encounter the multi hits.
Is there any documentation for more depth regarding macro programming? I see I can just type in characters for straight text entry, but how can I do items like sending tabs, alt-tabs, etc? We have a "new" ticketing system thats browser based and doesn't allow any templates so I spend more time filling in fields than actual work.
The help menu is your friend.
-
Edit: So far from mild use like a few brief entries in a form, spreadsheet, is fine.
Once I go to type up an email or something more in depth I've seen a few. It looks like H has done it twice, "don’t know whaht" and "its thhe weather"
I had one case of a spacebar delay so far, "you l ose"
I will keep you posted. It definitely feels a lot better than I remember.
Okay this is interesting. I will get out my Black Petal tonight and try it out to see if I have the same problem. I'm not sure what makes these boards so susceptible to this issue, but I've heard reports like this before so I want to get a handle on it.
It seems like a chatter issue, but if the debounce can't fix it then it must be something else. If I find that H and space are on the same column, then that will be a clue.
-
Edit: So far from mild use like a few brief entries in a form, spreadsheet, is fine.
Once I go to type up an email or something more in depth I've seen a few. It looks like H has done it twice, "don’t know whaht" and "its thhe weather"
I had one case of a spacebar delay so far, "you l ose"
I will keep you posted. It definitely feels a lot better than I remember.
Okay this is interesting. I will get out my Black Petal tonight and try it out to see if I have the same problem. I'm not sure what makes these boards so susceptible to this issue, but I've heard reports like this before so I want to get a handle on it.
It seems like a chatter issue, but if the debounce can't fix it then it must be something else. If I find that H and space are on the same column, then that will be a clue.
Its definitely odd as bpiphany's default firmware and the onnes I built with TMK were fine.
Ahh see, double n on the previous sentence. It definitely seems more common when i am doing much more typing.
I had another I think with I, "I idon't". Again I'll try and keep an eye when it happens. Some of them I fix by reflex and forget I need to document more info on.
Debounce is still on 6 default. Do you want me to try adjusting it a bit?
-
I would try 16. Shouldn't be necessary to go higher than that. If it still happens then that should eliminate chatter as thr culprit
-
I would try 16. Shouldn't be necessary to go higher than that. If it still happens then that should eliminate chatter as thr culprit
I noticed 2 more cases with H's and 1 with o. more = moroe. I just set the debounce now so I'll keep an eye out. Thank y ou sir. < delayed space after y. I don't think that was me on purpose.
-
I would try 16. Shouldn't be necessary to go higher than that. If it still happens then that should eliminate chatter as thr culprit
I noticed 2 more cases with H's and 1 with o. more = moroe. I just set the debounce now so I'll keep an eye out. Thank y ou sir. < delayed space after y. I don't think that was me on purpose.
Okay so we've ruled out simple chatter. Next I'd like to try settle delay. This is the time we wait for the matrix hardware to settle into high/low configuration after selecting a column, before attempting to read the row. I have a new build for you. Can you unzip this into your "builds" directory, overwriting the old .hex file, then try building and reprogramming?
-
poker arrows LEDs are routed to PF4; WASD to PF7; Caps to PB2; Esc to PF6. All of them are active LOW.
The above is correct - not really sure what defines an indicator so went with all of them (why not light up WASD as a huge warning when Caps Lock is on??) and wasn't sure how to set LEDs default to nothing, so set them to things. This works in the version downloaded a couple of hours ago with the easy rows/columns stuff - very easy to add :)
Is the "Alt layouts" section at the bottom functional? I checked several boards for an example but found none...
num_leds = 4
num_ind = 4
num_bl_enab = 2
led_definition = [
('Caps Key', 'Caps Lock'),
('Esc Key', 'Num Lock'),
('WASD', 'Fn2 Active'),
('Poker Arrows', 'Fn Active')
]
led_hardware = [
# Port Pin Direction
( REF_PORTB, 2, LED_DRIVER_PULLDOWN ),
( REF_PORTF, 4, LED_DRIVER_PULLDOWN ),
( REF_PORTF, 6, LED_DRIVER_PULLDOWN ),
( REF_PORTF, 7, LED_DRIVER_PULLDOWN )
]
backlighting = False
bl_modes = [
( 0,0,0,0 ),
( 1,1,1,1 )
]
@fknraiden - please find attached a .hex which is configured as below (based on the rows/cols you posted above)
# Easy AVR USB Keyboard Firmware Keymapper
# Copyright (C) 2013-2016 David Howland
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
"""Keyboard definition for a hand-wired keyboard"""
# The first decision you have to make is to choose a hardware
# layout. Assuming you are using a Teensy2.0, this is probably
# the best hardware layout for you. ATmega32U4_16MHz_SIXTY might
# also work for you, though. Leave the rest of the imports like
# they are here.
import easykeymap.templates.ATmega32U4_16MHz_TKL as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config
# The name of the board in the "New" dialog
description = "Hand-wire"
# Unique string to identify THIS exact hardware layout
unique_id = "HANDWIRE_001"
# The name of the .cfg file the system will try to find for altered
# layout options
cfg_name = "handwire"
# Hand-wired boards usually use Teensy controllers. Set this to
# True to make sure that the bootloader works.
teensy = True
# If your board has an exposed switch for going into boot mode, you
# can set this to True and the system won't prompt you to add a BOOT
# key to your layout.
hw_boot_key = False
# These two parameters define the size of the keyboard in the display.
# Must be whole numbers in units of quarter key lengths. A TKL
# usually is 6 rows high with a 1/2 key length gutter under the Fn row.
# Therefore int(6.5*4). Apply the same logic the width. Remember
# we are talking visual width, not number of columns.
display_height = int(6.5*4)
display_width = int(18.25*4)
# The number of rows and columns in the matrix. In a hand-wired board
# each of these will correspond to a single pin.
num_rows = 6
num_cols = 17
# Keyboards work by scanning a matrix to check each key. The scan
# works by setting an active row/column (strobing) and then reading
# the status of every switch that crosses it (sensing).
# strobe_cols tells the firmware which direction you have your diodes
# installed. If diodes go from column to row, then strobe_cols must
# be True. If diodes go from row to column, then strobe_cols must be
# False.
strobe_cols = True
# strobe_low tells the firmware if a row/column should be activated
# by pulling the pin high or low. Hand-wired boards will almost always
# use strobe_low = True
strobe_low = True
# The matrix_hardware, matrix_strobe, matrix_sense parameters tell
# the firmware how to initialize the ports, what pins must be set
# for each row/column, and what order to strobe/sense. These are
# complicated and are explained fully elsewhere. It is easiest to
# configure the matrix by using the make_matrix_config function as
# shown below. Just customize 'rows' and 'cols' for your project.
matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
strobe_cols=strobe_cols,
strobe_low=strobe_low,
rows=[F0, F1, F4, F5, F6, F7],
cols=[B1, B2, B3, B7, D0, D1, D2, D3, C6, C7, D5, D6, D7, B4, B5, B6],
device=firmware.device
)
# The total number of LED outputs (indicators + backlights)
num_leds = 1
# The number of LED indicators (for example, caps lock)
num_ind = 1
# The number of backlight enable modes. This counts the number of
# options available for the BL_ENABLE key
num_bl_enab = 2
# Define the default assignments of the indicator LEDs. The length
# of this list must equal num_ind. For each LED, the first string
# is the description of the key shown in the GUI. The second string
# is the default function. For valid function options, see
# led_assignments in gui.py
led_definition = [
('Caps Key', 'Caps Lock')
]
# Definition of LED pins. (indicators and backlights) Indicators
# must come first. LED_DRIVER_PULLUP is used when the pin is connected
# to the anode and the cathode is connected to ground.
# LED_DRIVER_PULLDOWN is used when the pin is connected to the cathode
# and the anode is connected to the power supply.
led_hardware = [
# Port Pin Direction
( REF_PORTB, 6, LED_DRIVER_PULLUP )
]
# True if the board supports backlight, otherwise False
backlighting = False
# This can be used to configure different backlighting zones. Explained
# in more detail elsewhere. Length of list must equal num_bl_enab.
# Length of each tuple must equal num_leds. Uses the same ordering
# as led_hardware
bl_modes = [
( 0, ),
( 1, )
]
# Just leave this here as-is.
KMAC_key = None
# Define your layout. This is a list of rows. Each row is a list
# of keys. Each key is a tuple of three items. First item is a tuple
# defining the width,height of the key. If it is just a number, it
# will be a space instead of a key. All units are in quarter key lengths,
# so a standard key would be (4,4). Second item is a tuple defining the
# row,column in the matrix for that key. Third item is the default scancode
# for that key, from scancodes.py. If a row is a number instead of a list,
# it will just make a vertical spacer.
keyboard_definition = [
[((4, 4), (0, 0), 'HID_KEYBOARD_SC_ESCAPE'),
(4, None, '0'),
((4, 4), (0, 2), 'HID_KEYBOARD_SC_F1'),
((4, 4), (0, 3), 'HID_KEYBOARD_SC_F2'),
((4, 4), (0, 4), 'HID_KEYBOARD_SC_F3'),
((4, 4), (0, 5), 'HID_KEYBOARD_SC_F4'),
(2, None, '0'),
((4, 4), (0, 6), 'HID_KEYBOARD_SC_F5'),
((4, 4), (0, 7), 'HID_KEYBOARD_SC_F6'),
((4, 4), (0, 8), 'HID_KEYBOARD_SC_F7'),
((4, 4), (0, 9), 'HID_KEYBOARD_SC_F8'),
(2, None, '0'),
((4, 4), (0, 10), 'HID_KEYBOARD_SC_F9'),
((4, 4), (0, 11), 'HID_KEYBOARD_SC_F10'),
((4, 4), (0, 12), 'HID_KEYBOARD_SC_F11'),
((4, 4), (0, 13), 'HID_KEYBOARD_SC_F12'),
(1, None, '0'),
((4, 4), (0, 14), 'HID_KEYBOARD_SC_PRINT_SCREEN'),
((4, 4), (0, 15), 'HID_KEYBOARD_SC_SCROLL_LOCK'),
((4, 4), (0, 16), 'HID_KEYBOARD_SC_PAUSE')],
2,
[((4, 4), (1, 1), 'HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE'),
((4, 4), (1, 1), 'HID_KEYBOARD_SC_1_AND_EXCLAMATION'),
((4, 4), (1, 2), 'HID_KEYBOARD_SC_2_AND_AT'),
((4, 4), (1, 3), 'HID_KEYBOARD_SC_3_AND_HASHMARK'),
((4, 4), (1, 4), 'HID_KEYBOARD_SC_4_AND_DOLLAR'),
((4, 4), (1, 5), 'HID_KEYBOARD_SC_5_AND_PERCENTAGE'),
((4, 4), (1, 6), 'HID_KEYBOARD_SC_6_AND_CARET'),
((4, 4), (1, 7), 'HID_KEYBOARD_SC_7_AND_AND_AMPERSAND'),
((4, 4), (1, 8), 'HID_KEYBOARD_SC_8_AND_ASTERISK'),
((4, 4), (1, 9), 'HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS'),
((4, 4), (1, 10), 'HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS'),
((4, 4), (1, 11), 'HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE'),
((4, 4), (1, 12), 'HID_KEYBOARD_SC_EQUAL_AND_PLUS'),
((8, 4), (1, 13), 'HID_KEYBOARD_SC_BACKSPACE'),
(1, None, '0'),
((4, 4), (1, 14), 'HID_KEYBOARD_SC_INSERT'),
((4, 4), (1, 15), 'HID_KEYBOARD_SC_HOME'),
((4, 4), (1, 16), 'HID_KEYBOARD_SC_PAGE_UP')],
[((6, 4), (2, 0), 'HID_KEYBOARD_SC_TAB'),
((4, 4), (2, 1), 'HID_KEYBOARD_SC_Q'),
((4, 4), (2, 2), 'HID_KEYBOARD_SC_W'),
((4, 4), (2, 3), 'HID_KEYBOARD_SC_E'),
((4, 4), (2, 4), 'HID_KEYBOARD_SC_R'),
((4, 4), (2, 5), 'HID_KEYBOARD_SC_T'),
((4, 4), (2, 6), 'HID_KEYBOARD_SC_Y'),
((4, 4), (2, 7), 'HID_KEYBOARD_SC_U'),
((4, 4), (2, 8), 'HID_KEYBOARD_SC_I'),
((4, 4), (2, 9), 'HID_KEYBOARD_SC_O'),
((4, 4), (2, 10), 'HID_KEYBOARD_SC_P'),
((4, 4), (2, 11), 'HID_KEYBOARD_SC_OPENING_BRACKET_AND_OPENING_BRACE'),
((4, 4), (2, 12), 'HID_KEYBOARD_SC_CLOSING_BRACKET_AND_CLOSING_BRACE'),
((6, 4), (2, 13), 'HID_KEYBOARD_SC_BACKSLASH_AND_PIPE'),
(1, None, '0'),
((4, 4), (2, 14), 'HID_KEYBOARD_SC_DELETE'),
((4, 4), (2, 15), 'HID_KEYBOARD_SC_END'),
((4, 4), (2, 16), 'HID_KEYBOARD_SC_PAGE_DOWN')],
[((7, 4), (3, 0), 'HID_KEYBOARD_SC_CAPS_LOCK'),
((4, 4), (3, 1), 'HID_KEYBOARD_SC_A'),
((4, 4), (3, 2), 'HID_KEYBOARD_SC_S'),
((4, 4), (3, 3), 'HID_KEYBOARD_SC_D'),
((4, 4), (3, 4), 'HID_KEYBOARD_SC_F'),
((4, 4), (3, 5), 'HID_KEYBOARD_SC_G'),
((4, 4), (3, 6), 'HID_KEYBOARD_SC_H'),
((4, 4), (3, 7), 'HID_KEYBOARD_SC_J'),
((4, 4), (3, 8), 'HID_KEYBOARD_SC_K'),
((4, 4), (3, 9), 'HID_KEYBOARD_SC_L'),
((4, 4), (3, 10), 'HID_KEYBOARD_SC_SEMICOLON_AND_COLON'),
((4, 4), (3, 11), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE'),
((9, 4), (3, 13), 'HID_KEYBOARD_SC_ENTER'),
(13, None, '0')],
[((9, 4), (4, 0), 'HID_KEYBOARD_SC_LEFT_SHIFT'),
((4, 4), (4, 2), 'HID_KEYBOARD_SC_Z'),
((4, 4), (4, 3), 'HID_KEYBOARD_SC_X'),
((4, 4), (4, 4), 'HID_KEYBOARD_SC_C'),
((4, 4), (4, 5), 'HID_KEYBOARD_SC_V'),
((4, 4), (4, 6), 'HID_KEYBOARD_SC_B'),
((4, 4), (4, 7), 'HID_KEYBOARD_SC_N'),
((4, 4), (4, 8), 'HID_KEYBOARD_SC_M'),
((4, 4), (4, 9), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
((4, 4), (4, 10), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
((4, 4), (4, 11), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK'),
((11, 4), (4, 13), 'HID_KEYBOARD_SC_RIGHT_SHIFT'),
(5, None, '0'),
((4, 4), (4, 15), 'HID_KEYBOARD_SC_UP_ARROW'),
(4, None, '0')],
[((5, 4), (5, 0), 'HID_KEYBOARD_SC_LEFT_CONTROL'),
((5, 4), (5, 1), 'HID_KEYBOARD_SC_LEFT_GUI'),
((5, 4), (5, 2), 'HID_KEYBOARD_SC_LEFT_ALT'),
((25, 4), (5, 6), 'HID_KEYBOARD_SC_SPACE'),
((5, 4), (5, 10), 'HID_KEYBOARD_SC_RIGHT_ALT'),
((5, 4), (5, 11), 'HID_KEYBOARD_SC_RIGHT_GUI'),
((5, 4), (5, 12), 'HID_KEYBOARD_SC_APPLICATION'),
((5, 4), (5, 13), 'HID_KEYBOARD_SC_RIGHT_CONTROL'),
(1, None, '0'),
((4, 4), (5, 14), 'HID_KEYBOARD_SC_LEFT_ARROW'),
((4, 4), (5, 15), 'HID_KEYBOARD_SC_DOWN_ARROW'),
((4, 4), (5, 16), 'HID_KEYBOARD_SC_RIGHT_ARROW')]
]
# Just leave this here as-is.
alt_layouts = {}
It may output something, it may not - if you could post a pic of your matrix it should be an easy tweak to make it work if it doesn't...
-
indicators are every LED that isn't a backlight. Things you can assign capslock, numlock, or fn_active to.
-
I would try 16. Shouldn't be necessary to go higher than that. If it still happens then that should eliminate chatter as thr culprit
I noticed 2 more cases with H's and 1 with o. more = moroe. I just set the debounce now so I'll keep an eye out. Thank y ou sir. < delayed space after y. I don't think that was me on purpose.
Okay so we've ruled out simple chatter. Next I'd like to try settle delay. This is the time we wait for the matrix hardware to settle into high/low configuration after selecting a column, before attempting to read the row. I have a new build for you. Can you unzip this into your "builds" directory, overwriting the old .hex file, then try building and reprogramming?
Thanks, I'll report back on Monday as I leave that keyboard at work and I was out sick today.
-
Just pushed an update to the repository. It should now be safe to run as a package. also, I added the ability to have user-specific board configurations. If you want to add a handwire board, you just copy the handwire.py file and put it in ~/.EasyAVR/boards (created automatically by running the tool), then customize it to your heart's content. Then, when the tool is upgraded to the latest version, your own config will still be there.
-
Okay so we've ruled out simple chatter. Next I'd like to try settle delay. This is the time we wait for the matrix hardware to settle into high/low configuration after selecting a column, before attempting to read the row. I have a new build for you. Can you unzip this into your "builds" directory, overwriting the old .hex file, then try building and reprogramming?
Sorry for the delay. I was out sick so didn't get a chance to try until yesterday. I have had a few but it seems much less. I think maybe 3-4 yesterday. I had 1 so far this morning. I'll keep an eye out for more. I also had the bounce back to 6 so if I see more I will raise up to 16 again and see if any improvement.
-
If it has made a noticable difference, then it seems likely that settle time is the culprit. I will probably make settle time configurable through the console like debounce time. I will also double check to ensure the I/O pins are being configured correctly for pull-up and whatnot.
-
Alright "matrix setup wait" is now a configurable setting. Original builds had it locked at 2. Your test build had it locked at 10. It now defaults to 5 on 16MHz boards and can be increased to 255. To achieve equivalence with TMK, you should probably try a setting of 20 or so. Hopefully that solves the problem. Not sure why these costar boards are so slow, but at least it's easy to modify now.
-
Alright "matrix setup wait" is now a configurable setting. Original builds had it locked at 2. Your test build had it locked at 10. It now defaults to 5 on 16MHz boards and can be increased to 255. To achieve equivalence with TMK, you should probably try a setting of 20 or so. Hopefully that solves the problem. Not sure why these costar boards are so slow, but at least it's easy to modify now.
I keep forgetting to pay attention in which combinations trigger but H seems to be common and space bars.
But yes, it does feel much better and they appear less often.
Ill try the new build and work my way up. So TMK has it at 20? Ill fiddle around with 15 to 20 and then see how it is.
-
I tried matrix wait on 15 and still had some h's and i's duplicating.
I raised it to 20 and shortly after still had some h's and space bars going. Edit: and some i's again.
-
ugh, wtf??
Okay, the fact that the keys work at all is enough to prove that the matrix is lined up correctly. We've tried extending the debounce time, we've tried extending the setup time. The only thing left is to ensure that other parts of the matrix are not interfering. Are there other keys that have to be pressed to make your H or I glitch?
-
ugh, wtf??
Okay, the fact that the keys work at all is enough to prove that the matrix is lined up correctly. We've tried extending the debounce time, we've tried extending the setup time. The only thing left is to ensure that other parts of the matrix are not interfering. Are there other keys that have to be pressed to make your H or I glitch?
I've tried documenting them better, and have had 2 a's and a k repeat on me. there were 2 others but I cant recall as I corrected it while going.
So in about 5 hours I've had maybe 5 instances?
Should I try bringing it up more? the last 2 i copied some of it, came = camea.
NewYork is = NewYork iks
I would think maybe repeat delay but I cant see how I would still hold k after a space and an I.
If pushing I can type about 95 (it just did it, 995) wpm. but when these are occurring Im probably only cruising around 50-70
-
I'm going to try something new tonight.
-
Okay so I reconfigured the frosty flake v2 file. Just to make sure, I used bpiphany's exact layout from his latest code. These costar boards are so scrambled, if I need to debug I'll use his arrangement.
Make sure you have the latest keymapper code. Run it at least once. Put the attached file in your C:\Users\<username>\.EasyAVR\boards . Make a new config using the "Frosty Flake v2 TEST" layout. See how it works. This **** is complicated and I probably messed something up, so test every key. Make sure you use a healthy debounce and setup time.
If this doesn't work, I'm going to have to find a QFR to try for myself.
-
Okay so I reconfigured the frosty flake v2 file. Just to make sure, I used bpiphany's exact layout from his latest code. These costar boards are so scrambled, if I need to debug I'll use his arrangement.
Make sure you have the latest keymapper code. Run it at least once. Put the attached file in your C:\Users\<username>\.EasyAVR\boards . Make a new config using the "Frosty Flake v2 TEST" layout. See how it works. This **** is complicated and I probably messed something up, so test every key. Make sure you use a healthy debounce and setup time.
If this doesn't work, I'm going to have to find a QFR to try for myself.
I'm about to make a new layout now.
Has anyone else had this many issues you know of? bphiphany saidi I could swap it in the event its a bad one.
I feel bad taking up this much time if I'm the only victim.
Live in the wild, the i's in the previous sentence.
But then nit worked ok with his. And the n now.
Edit: ok, keys look ok, so I'll ride this for a while and let you know how it comes out.
-
Okay so I reconfigured the frosty flake v2 file. Just to make sure, I used bpiphany's exact layout from his latest code. These costar boards are so scrambled, if I need to debug I'll use his arrangement.
Make sure you have the latest keymapper code. Run it at least once. Put the attached file in your C:\Users\<username>\.EasyAVR\boards . Make a new config using the "Frosty Flake v2 TEST" layout. See how it works. This **** is complicated and I probably messed something up, so test every key. Make sure you use a healthy debounce and setup time.
If this doesn't work, I'm going to have to find a QFR to try for myself.
I'm about to make a new layout now.
Has anyone else had this many issues you know of? bphiphany saidi I could swap it in the event its a bad one.
I feel bad taking up this much time if I'm the only victim.
Live in the wild, the i's in the previous sentence.
But then nit worked ok with his. And the n now.
Edit: ok, keys look ok, so I'll ride this for a while and let you know how it comes out.
You're not the only one. A long time ago someone else spoke up about it. I just increased the setup time and they stopped complaining. I think if TMK and bpiphany's code both work, then it's not your controller. I think it's just all of the frosty flakes in general. My code really pushes the AVR to it's limits and apparently on this hardware it's too far. Still, I'm quite sure it can work, it's just that when I don't own the hardware it seems to take forever.
-
Okay so I reconfigured the frosty flake v2 file. Just to make sure, I used bpiphany's exact layout from his latest code. These costar boards are so scrambled, if I need to debug I'll use his arrangement.
Make sure you have the latest keymapper code. Run it at least once. Put the attached file in your C:\Users\<username>\.EasyAVR\boards . Make a new config using the "Frosty Flake v2 TEST" layout. See how it works. This **** is complicated and I probably messed something up, so test every key. Make sure you use a healthy debounce and setup time.
If this doesn't work, I'm going to have to find a QFR to try for myself.
I'm about to make a new layout now.
Has anyone else had this many issues you know of? bphiphany saidi I could swap it in the event its a bad one.
I feel bad taking up this much time if I'm the only victim.
Live in the wild, the i's in the previous sentence.
But then nit worked ok with his. And the n now.
Edit: ok, keys look ok, so I'll ride this for a while and let you know how it comes out.
You're not the only one. A long time ago someone else spoke up about it. I just increased the setup time and they stopped complaining. I think if TMK and bpiphany's code both work, then it's not your controller. I think it's just all of the frosty flakes in general. My code really pushes the AVR to it's limits and apparently on this hardware it's too far. Still, I'm quite sure it can work, it's just that when I don't own the hardware it seems to take forever.
I have debounce on 6 and matrix wait on 20. I think its working about the same as previously. I get some on occasion, and it seems to be h's, spacebar mostly, sometimes i. I had one case of U.
When creating the layout I ichoose ansi 87. Should I try something else? and looks like an I again just now.
Edit: 1st email of the day and I had 3 of them, so not sure what the deal is.
painful weirid for me. weird
I barely goto wins. got
charges hehr next her. Im wondering if its combinations of keys that trigger the duplicate before it.
Also not sure if it matters when I flash the tmk firm it says its using 0x3A80 bytes of 0x7000, 52.23%.
Yours states x6780 bytes, 92.41%.
-
I played around with the customizing the firmware to work properly on the Mac. Previous and Next Track keycodes worked with iTunes just fine, but not anything else like Spotify. What I found is that the Rewind (0xB4) and Fast Foward (0xB3) keycodes should be sent instead. Just as a quick dirty hack I modified SC_WIN_CP_NEXT_TRACK and SC_WIN_CP_PREV_TRACK to these values, and they work correctly. Spotify seems happy, iTunes still works as well.
Scroll Lock and Pause will decrease and increase monitor brightness respectively for anyone interested and wasn't aware. The Mac will take those keys and make them F14 and F15, and Print Screen should be F13. F14 and F15 are the default Brightness controls set by the OS. I was trying to assign additional function keys but the Mac will not pick up any of the function keys higher than F12, I'm still looking into that.
I'm using a QFR with a Frosty Flake v2, love it with no real issues to complain about. The firmware works great otherwise.
-
I played around with the customizing the firmware to work properly on the Mac. Previous and Next Track keycodes worked with iTunes just fine, but not anything else like Spotify. What I found is that the Rewind (0xB4) and Fast Foward (0xB3) keycodes should be sent instead. Just as a quick dirty hack I modified SC_WIN_CP_NEXT_TRACK and SC_WIN_CP_PREV_TRACK to these values, and they work correctly. Spotify seems happy, iTunes still works as well.
Scroll Lock and Pause will decrease and increase monitor brightness respectively for anyone interested and wasn't aware. The Mac will take those keys and make them F14 and F15, and Print Screen should be F13. F14 and F15 are the default Brightness controls set by the OS. I was trying to assign additional function keys but the Mac will not pick up any of the function keys higher than F12, I'm still looking into that.
I'm using a QFR with a Frosty Flake v2, love it with no real issues to complain about. The firmware works great otherwise.
I have never owned a Mac, so I know that my Mac support is weak. All the media keys were added using Microsoft's guidance. Thanks for this input. Perhaps Mac support can be added.
-
I played around with the customizing the firmware to work properly on the Mac. Previous and Next Track keycodes worked with iTunes just fine, but not anything else like Spotify. What I found is that the Rewind (0xB4) and Fast Foward (0xB3) keycodes should be sent instead. Just as a quick dirty hack I modified SC_WIN_CP_NEXT_TRACK and SC_WIN_CP_PREV_TRACK to these values, and they work correctly. Spotify seems happy, iTunes still works as well.
Scroll Lock and Pause will decrease and increase monitor brightness respectively for anyone interested and wasn't aware. The Mac will take those keys and make them F14 and F15, and Print Screen should be F13. F14 and F15 are the default Brightness controls set by the OS. I was trying to assign additional function keys but the Mac will not pick up any of the function keys higher than F12, I'm still looking into that.
I'm using a QFR with a Frosty Flake v2, love it with no real issues to complain about. The firmware works great otherwise.
I have never owned a Mac, so I know that my Mac support is weak. All the media keys were added using Microsoft's guidance. Thanks for this input. Perhaps Mac support can be added.
Actually for the most part everything works. Just had to swap those keys around for Media playback to function properly. I haven't had an issue with anything else but the function keys. If I figure out anything on that I'll let you know. I'm using it full time on an iMac with 3 layers and nothing bad to say. I had more trouble installing the Atmel Studio as I selected the wrong chip support the first go round.
-
Can I run Easy AVR USB keyboard firmware and keymapper on my Raspberry Pi?
-
Can I run Easy AVR USB keyboard firmware and keymapper on my Raspberry Pi?
You can run the keymapper on your rPi, sure. If you've already got a Linux distro installed you almost certainly have python installed. You can just get the source and run the included shell script.
The firmware itself only runs on keyboards.
If you want to hack on and compile the firmware, it can be done, but not without a bunch of experience coding in Linux.
-
Can I run Easy AVR USB keyboard firmware and keymapper on my Raspberry Pi?
You can run the keymapper on your rPi, sure. If you've already got a Linux distro installed you almost certainly have python installed. You can just get the source and run the included shell script.
The firmware itself only runs on keyboards.
If you want to hack on and compile the firmware, it can be done, but not without a bunch of experience coding in Linux.
Cool. Wanted to program a possible JD45 using the rPi. Great thing Easy AVR works on the Pi. Appreciate the answer. :thumb:
-
Can I run Easy AVR USB keyboard firmware and keymapper on my Raspberry Pi?
You can run the keymapper on your rPi, sure. If you've already got a Linux distro installed you almost certainly have python installed. You can just get the source and run the included shell script.
The firmware itself only runs on keyboards.
If you want to hack on and compile the firmware, it can be done, but not without a bunch of experience coding in Linux.
Cool. Wanted to program a possible JD45 using the rPi. Great thing Easy AVR works on the Pi. Appreciate the answer. :thumb:
I will be updating the EasyAVR tool in preparation for the JD45 sale. So you can be sure a solution will be in place to make programming as easy as possible. I'm adding support for Wilba's new PCBs and I will be (finally) writing better documentation to explain exactly how to get started using it.
Note, though, that windows is still much easier because you can use Atmel's Flip tool to do the programming. On Linux you have to use dfu-programmer.
-
Stupid question time:
I'm in the process of building one of Hasu's TMK Alps64 PCBs (https://geekhack.org/index.php?topic=69740.0). If I understand correctly, since the Alps64 has a ATMega32U2 (https://geekhack.org/index.php?topic=69666.0), EasyAVR will support the PCB. Is this true? I wasn't sure if you needed the hardware in hand before being able to update EasyAVR metalliqaz.
-
Stupid question time:
I'm in the process of building one of Hasu's TMK Alps64 PCBs (https://geekhack.org/index.php?topic=69740.0). If I understand correctly, since the Alps64 has a ATMega32U2 (https://geekhack.org/index.php?topic=69666.0), EasyAVR will support the PCB. Is this true? I wasn't sure if you needed the hardware in hand before being able to update EasyAVR metalliqaz.
Yes it is supported. Some hacking would be required to add a suitable size for that target, but the effort is minimal. I'm happy to help you out with support if you want. You'd have to be the tester.
-
I'd be happy to be the guinea pig but I'm really bad with coding. You'll have to suffer through a lot of stupid questions. I'm game if you are though.
-
I will be updating the EasyAVR tool in preparation for the JD45 sale. So you can be sure a solution will be in place to make programming as easy as possible. I'm adding support for Wilba's new PCBs and I will be (finally) writing better documentation to explain exactly how to get started using it.
Note, though, that windows is still much easier because you can use Atmel's Flip tool to do the programming. On Linux you have to use dfu-programmer.
Clear, easy to follow documentation would be awesome.
Does it have to dfu-programmer? what about dfu-util? or the teansy loader? So many options :confused:. But hope you also include this info in your documentation
Thank you
-
I will be updating the EasyAVR tool in preparation for the JD45 sale. So you can be sure a solution will be in place to make programming as easy as possible. I'm adding support for Wilba's new PCBs and I will be (finally) writing better documentation to explain exactly how to get started using it.
Note, though, that windows is still much easier because you can use Atmel's Flip tool to do the programming. On Linux you have to use dfu-programmer.
Clear, easy to follow documentation would be awesome.
Does it have to dfu-programmer? what about dfu-util? or the teansy loader? So many options :confused:. But hope you also include this info in your documentation
Thank you
On boards that use Teensy controllers, the Teensy loader must be used. They have good instructions on their webpage. I will link to it in my documentation.
On other USB AVR boards, any DFU programming tool should work. I'm not familiar with any of them because I always use Flip in Windows. I will try to find some Linux users to help me write up instructions for programming on Linux.
-
I was just browsing the thread to stay somewhat updated. Think I saw something about figuring existing matrices out. A while back I wrote a simple code for the Teensy++ (really any of the ATmegas with some modifications) to reverse engineer matrices. Since the Teensy++ has enough GPIO pins to go around it's a simple thing to just let it do the work.
Pressing one key at a time, the program simply outputs which pins on the Teensy that are connected. The direction of the diodes will also follow (with some understanding of what's happening). If it is a diode-less matrix, both A->B and B->A will indicate at the same time for each key.
https://github.com/BathroomEpiphanies/matrix_mapper
Just thought I would post about that if it can help anyone out. I definitely used it once or twice to figure the Costar boards out =)
-
Linux user checking in :)
GH60
Install dfu-programmer e.g. on Debian/Ubuntu
sudo apt-get install dfu-programmer
Press the button on the PCB, wait a couple of seconds then run this - timing may take some practice
sudo dfu-programmer atmega32u4 erase
Once erased there's no need to press the button, wait about 10 seconds (no idea why, but I've had probelms if I didn't...) then run this to flash your hex
sudo dfu-programmer atmega32u4 flash /path/to/exported.hex
Arduino Micro (original, not Pro Micro clone)
Install avrdude e.g. on Debian/Ubuntu
sudo apt-get install avrdude
Plug in USB then run
dmesg | tail
This shows system messages, the output will look something like this:
[ 875.048603] usb 5-1.6.2: USB disconnect, device number 9
[ 875.264373] usb 5-1.6.2: new full-speed USB device number 10 using ehci-pci
[ 875.376897] usb 5-1.6.2: New USB device found, idVendor=2341, idProduct=8037
[ 875.376910] usb 5-1.6.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 875.376912] usb 5-1.6.2: Product: Arduino Micro
[ 875.376914] usb 5-1.6.2: Manufacturer: Arduino LLC
[ 875.377303] cdc_acm 5-1.6.2:1.0: This device cannot do calls on its own. It is not a modem.
[ 875.377322] cdc_acm 5-1.6.2:1.0: ttyACM0: USB ACM device
[ 875.380327] input: Arduino LLC Arduino Micro as /devices/pci0000:00/0000:00:1a.0/usb5/5-1/5-1.6/5-1.6.2/5-1.6.2:1.2/0003:2341:8037.000D/input/input28
[ 875.380939] hid-generic 0003:2341:8037.000D: input,hidraw7: USB HID v1.01 Mouse [Arduino LLC Arduino Micro] on usb-0000:00:1a.0-1.6.2/input2
I've added spaces around the important line, in my case ttyACM0 is the SERIAL PORT to use below. Press the button on the Ardunino then run this to flash your .hex
sudo avrdude -DV -p atmega32u4 -P /dev/SERIAL PORT -c avr109 -b 57600 -U flash:w:/path/to/exported.hex :i
-
Thanks dude. With your permission I'd like to add it to the readme.
-
Please do :)
-
Is there a way to gracefully manage more than one handwired matrix?
At the moment it seems to only support one handwire_hardware.cfg file, and making multiple copies of the Easy AVR folders is the workaround.
Or is it expected that a standard pin/row assignment be used, and the wiring and visual layout be conformed to that?
-
Is there a way to gracefully manage more than one handwired matrix?
At the moment it seems to only support one handwire_hardware.cfg file, and making multiple copies of the Easy AVR folders is the workaround.
Or is it expected that a standard pin/row assignment be used, and the wiring and visual layout be conformed to that?
Absolutely, there is. The new, open source code is very customizable and you can add as many custom boards as you want. It doesn't use the handwire_config.cfg file. It is working and I use the new version every day. The only thing I haven't done is write the documentation and update the wikis. I'm working on it, but if you know how to use python and github, you can use it now. I'm hoping to have a windows executable any day now. I'm just having trouble getting it to work with Windows 10.
-
Awesome! I'll dig in!
Also, what's the policy on officially supporting/adding boards? Just a finalized PCB?
EDIT: LOVE the layout config with customizable matrix!
I can run it on W7 with the run.bat, but it's missing the stuff in the boards directory. I assume I need to get atmel studio and compile?
-
Awesome! I'll dig in!
Also, what's the policy on officially supporting/adding boards? Just a finalized PCB?
If you think a board should be supported, make it work and then send a pull request on github.
New support can be added in most cases without changing any code. You get version 2.1 of the keymapper and run it. This will create ~/.EasyAVR (probably c:\users\username\.EasyAVR on windows). Then you go into the easykeymap/boards directory in the source and copy the example handwire.py file to your ~/.EasyAVR/boards directory. Rename it to anything you want. Edit the file and follow the directions to add support for your own board. This can be done as many times as you need. Just make sure to give each board a unique ID.
When you're done and everything is working, if you think that your config would be useful for others, you can add it to the source code proper and make a pull request. If you don't know how to use git, you can just send it to me and I'll do it.
-
Anyone know if there has been any work or fork done for the GH60 Satan/CHN Rev? I think it was mentioned here before, but not sure if anyone picked it up or not. I love the Satan, but damn is it a pain to do everything manually :-X.
-
Anyone know if there has been any work or fork done for the GH60 Satan/CHN Rev? I think it was mentioned here before, but not sure if anyone picked it up or not. I love the Satan, but damn is it a pain to do everything manually :-X.
If I make a test build tonight, will you test it?
-
Is there a new cross platform version with the new JD45 and JD40 PCB support?
-
Is there a new cross platform version with the new JD45 and JD40 PCB support?
It's in Github. I haven't made download packages yet. I'm working on releases and documentation this week, in between Sigma :)
-
I'm trying this with a fresh Linux install, had to install python3-tk but then I get these errors (both commands run from the folder with them in)
./easykeymap.sh
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/joe/Downloads/EasyAVR-master/keymapper/easykeymap/gui.py", line 31, in <module>
from tkinter import *
or
python3.4 easykeymap/gui.py
Traceback (most recent call last):
File "easykeymap/gui.py", line 46, in <module>
from easykeymap import __version__
ImportError: No module named 'easykeymap'
First thing I tried last time was running the installer so I guess that will fix it, but thought this might be useful?
@jdcarpe it can be made to run and the latest commit says "Add support for new JD45 and JD40 boards by Wilba" so should work for them. I can test on my JD40 (from ctrl alt in late 2014) if that helps?
-
I'm trying this with a fresh Linux install, had to install python3-tk but then I get these errors (both commands run from the folder with them in)
./easykeymap.sh
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/joe/Downloads/EasyAVR-master/keymapper/easykeymap/gui.py", line 31, in <module>
from tkinter import *
Okay, so what's happening is that you may have installed python3-tk, but your system is configured to use python2 by default, and that must not have the tk libs installed. I will fix the unhelpful error in this situation.
or
python3.4 easykeymap/gui.py
Traceback (most recent call last):
File "easykeymap/gui.py", line 46, in <module>
from easykeymap import __version__
ImportError: No module named 'easykeymap'
First thing I tried last time was running the installer so I guess that will fix it, but thought this might be useful?
You should run "python3.4 -m easykeymap.gui"
That should work.
@jdcarpe it can be made to run and the latest commit says "Add support for new JD45 and JD40 boards by Wilba" so should work for them. I can test on my JD40 (from ctrl alt in late 2014) if that helps?
Aparently there are now 3 JD45 variants, all with different hardware, and my code currently only supports two. Wilba's boards aren't available to the public yet, as far as I know
-
Is there a new cross platform version with the new JD45 and JD40 PCB support?
It's in Github. I haven't made download packages yet. I'm working on releases and documentation this week, in between Sigma :)
Well, it sure is! I had downloaded it, but I didn't realize that was it. Something seems wrong with the Fn layers on the JD45. They seem to be a row off. I press Fn+W, and it cursors down, instead of up. Same throughout. I can hack in replacement code, if needed.
Wilba's boards aren't available to the public yet, as far as I know
The JD45s are on sale now. Click the link in my sig to order! :P
JD40s coming soon...
-
Is there a new cross platform version with the new JD45 and JD40 PCB support?
It's in Github. I haven't made download packages yet. I'm working on releases and documentation this week, in between Sigma :)
Well, it sure is! I had downloaded it, but I didn't realize that was it. Something seems wrong with the Fn layers on the JD45. They seem to be a row off. I press Fn+W, and it cursors down, instead of up. Same throughout. I can hack in replacement code, if needed.
Okay, THAT's bad. I'm pretty sure I just figured out the problem, though. It's in the keymapper. I'll fix it tonight.
-
Okay, THAT's bad. I'm pretty sure I just figured out the problem, though. It's in the keymapper. I'll fix it tonight.
Thanks! Happy to test for you, now that I figured out how to install dfu-programmer on this mac. :)
-
You should run "python3.4 -m easykeymap.gui"
That should work.
Nope, different again!
python3.4 -m gui.py
/usr/bin/python3.4: Error while finding spec for 'gui.py' (<class 'ImportError'>: No module named 'easykeymap')
For the record 'python' is indeed linked to version 2.7.
-
Well, it works for me
-
Hmm... this is a 32bit Xubuntu install so nothing exotic. Hopefully everyone else's experience follows yours, I'll just bodge round it :))
-
I don't know why these distros wouldn't install the full python installation by default, but that's just a cost of using that platform, I suppose.
By the way, python -m gui.py isn't correct syntax. When using -m you don't specify files names, but module names.
Also, I should add that Python 2.7 still works with the keymapper and I'm probably going to continue supporting it.
-
Okay, THAT's bad. I'm pretty sure I just figured out the problem, though. It's in the keymapper. I'll fix it tonight.
Thanks! Happy to test for you, now that I figured out how to install dfu-programmer on this mac. :)
I committed something that should fix it.
By the way, how did you get it working on the mac? I am going to write the HOWTO and I'd like to include mac instructions.
-
Anyone know if there has been any work or fork done for the GH60 Satan/CHN Rev? I think it was mentioned here before, but not sure if anyone picked it up or not. I love the Satan, but damn is it a pain to do everything manually :-X.
I added support. Go ahead and give it a shot.
-
I have started making releases again. I just published 2.1.4 on the wiki. Next stop, documentation.
-
Okay, THAT's bad. I'm pretty sure I just figured out the problem, though. It's in the keymapper. I'll fix it tonight.
Thanks! Happy to test for you, now that I figured out how to install dfu-programmer on this mac. :)
I committed something that should fix it.
By the way, how did you get it working on the mac? I am going to write the HOWTO and I'd like to include mac instructions.
Works like a charm on my new JD45 now. Thanks!
Installing AVR and dfu-programmer on the Mac was non-trivial. I first tried it manually, but could never get libusb to compile. Finally, after searching Google, I used this guide (http://www.uriahbaalke.com/?p=106) to get it going. It now works flawlessly. First, you need to install Cross Pack for AVR, then use the install script you can download from that page to install dfu-programmer.
-
Installing AVR and dfu-programmer on the Mac was non-trivial. I first tried it manually, but could never get libusb to compile. Finally, after searching Google, I used this guide (http://www.uriahbaalke.com/?p=106) to get it going. It now works flawlessly. First, you need to install Cross Pack for AVR, then use the install script you can download from that page to install dfu-programmer.
I personally would not recommend going this way - use homebrew (http://brew.sh/)! After installing homebrew, just brew install dfu-programmer
Installs dependencies automatically, and the best part is that it's all uninstallable and upgradeable.
EDIT: For avr stuff, do brew tap jpommerening/avr
brew update
brew install avr-libc
-
Macro record doesnt seem to work in easykeymap_windows_2_01_04. Also, Fn layer starts with all blanks instead of default layout[not sure if feature or bug]
-
Macro record doesnt seem to work in easykeymap_windows_2_01_04. Also, Fn layer starts with all blanks instead of default layout[not sure if feature or bug]
What board are you using? I just tested RAM macros on my Epsilon, and it seems to work. I have Macro Rec assigned to F11, and Macro Play assigned to F12. To record it's F11, my text, F11. To play it back it's F12.
The new version only loads the default layer on most of the board configs. It's now up to the config file to specify the default layouts and most only specify one. It's not a big deal. Just use the Copy/Paste tool to copy the default layer to your Function layer and start from there.
-
Macro record doesnt seem to work in easykeymap_windows_2_01_04. Also, Fn layer starts with all blanks instead of default layout[not sure if feature or bug]
What board are you using? I just tested RAM macros on my Epsilon, and it seems to work. I have Macro Rec assigned to F11, and Macro Play assigned to F12. To record it's F11, my text, F11. To play it back it's F12.
The new version only loads the default layer on most of the board configs. It's now up to the config file to specify the default layouts and most only specify one. It's not a big deal. Just use the Copy/Paste tool to copy the default layer to your Function layer and start from there.
well of course i had to leave out such important detail, silly me. im using ghost squid cmqfxt. way i use it is that i rebinded scroll lock to fn layer and while in this layer, insert acts as macro record and when on default layer, it acts as macro play. worked just fine on older version[2015-something non-beta, it was in this topic before you updated it few days ago]
great, good to know. that sounds doable :) just wasnt aware of it.
-
I have debounce on 6 and matrix wait on 20. I think its working about the same as previously. I get some on occasion, and it seems to be h's, spacebar mostly, sometimes i. I had one case of U.
When creating the layout I ichoose ansi 87. Should I try something else? and looks like an I again just now.
Edit: 1st email of the day and I had 3 of them, so not sure what the deal is.
painful weirid for me. weird
I barely goto wins. got
charges hehr next her. Im wondering if its combinations of keys that trigger the duplicate before it.
Also not sure if it matters when I flash the tmk firm it says its using 0x3A80 bytes of 0x7000, 52.23%.
Yours states x6780 bytes, 92.41%.
Hey Metalliqaz, any other suggestions? I switched back to TMK last week as the doubles were starting to slow me down on some work.
I get 2-3 a day on TMK maybe, and seems mostly spaces. I can see them and if spellcheck is available in that app then itll inform me as well.
-
Hey Metalliqaz, any other suggestions? I switched back to TMK last week as the doubles were starting to slow me down on some work.
I get 2-3 a day on TMK maybe, and seems mostly spaces. I can see them and if spellcheck is available in that app then itll inform me as well.
Hmmm, sounds like you're saying the issue also pops up on TMK. If that's the case, and since brentnycum reported that his Frosty Flake was working, I'm starting to think it could be your hardware :(
-
I can run it on W7 with the run.bat, but it's missing the stuff in the boards directory. I assume I need to get atmel studio and compile?
Sorry, I didn't see your edit. you don't have to compile it, it should come with everything it needs. I haven't done a lot of testing on the new packages yet, I'll check it out.
-
well of course i had to leave out such important detail, silly me. im using ghost squid cmqfxt. way i use it is that i rebinded scroll lock to fn layer and while in this layer, insert acts as macro record and when on default layer, it acts as macro play. worked just fine on older version[2015-something non-beta, it was in this topic before you updated it few days ago]
great, good to know. that sounds doable :) just wasnt aware of it.
I'll have to try it out on my Black Petal. I assume you've got your Fn key in toggle mode, right?
-
well of course i had to leave out such important detail, silly me. im using ghost squid cmqfxt. way i use it is that i rebinded scroll lock to fn layer and while in this layer, insert acts as macro record and when on default layer, it acts as macro play. worked just fine on older version[2015-something non-beta, it was in this topic before you updated it few days ago]
great, good to know. that sounds doable :) just wasnt aware of it.
I'll have to try it out on my Black Petal. I assume you've got your Fn key in toggle mode, right?
kinda. its lockable :) neither holding it nor double tap[toggle] works with macro record. it doesn't seems like it even starts recording, no led flashing
-
Anyone know if there has been any work or fork done for the GH60 Satan/CHN Rev? I think it was mentioned here before, but not sure if anyone picked it up or not. I love the Satan, but damn is it a pain to do everything manually :-X.
I added support. Go ahead and give it a shot.
OMG You're amazing \ :eek: /. I'll test it later tonight/tom!
-
What am I missing? Trying to compile a firmware and I get this error:
Error: 'module' object has no attribute 'teensy'
Both with the exe and py versions.
-
What am I missing? Trying to compile a firmware and I get this error:
Error: 'module' object has no attribute 'teensy'
Both with the exe and py versions.
One of your custom user boards in ~/.EasyAVR isn't a valid configuration file
-
What am I missing? Trying to compile a firmware and I get this error:
Error: 'module' object has no attribute 'teensy'
Both with the exe and py versions.
One of your custom user boards in ~/.EasyAVR isn't a valid configuration file
I'm on Windows, don't see that folder. I also have a Planck I'm trying to build for.
-
What am I missing? Trying to compile a firmware and I get this error:
Error: 'module' object has no attribute 'teensy'
Both with the exe and py versions.
One of your custom user boards in ~/.EasyAVR isn't a valid configuration file
I'm on Windows, don't see that folder. I also have a Planck I'm trying to build for.
Well that's the error you get when one of the board config files is missing a required parameter. In this case, it's the "teensy" setting.
-
What am I missing? Trying to compile a firmware and I get this error:
Error: 'module' object has no attribute 'teensy'
Both with the exe and py versions.
One of your custom user boards in ~/.EasyAVR isn't a valid configuration file
I'm on Windows, don't see that folder. I also have a Planck I'm trying to build for.
Well that's the error you get when one of the board config files is missing a required parameter. In this case, it's the "teensy" setting.
Yeah, I dug around a little more and found that. Looks like the planck board file is bad on the source - can I commit the update with the teensy setting fixed?
-
wow, you're right. My bad. I'll fix it in a quick second.
-
wow, you're right. My bad. I'll fix it in a quick second.
Okay I committed it. Thanks for reporting the issue. Planck is untested. If you get it working let me know or update the wiki.
-
wow, you're right. My bad. I'll fix it in a quick second.
Okay I committed it. Thanks for reporting the issue. Planck is untested. If you get it working let me know or update the wiki.
Yeah that board layout is borked - I'll have to mess around with it when I have time.
-
Is there a way to hack into the KBParadise V60 to make it fully programmable?
I found this:
https://github.com/pellettiero/V60Mini-firmhack
I'm just not sure what I can do with it, or how to use it.
Any help would be appreciated!!
Cheers!
-
well of course i had to leave out such important detail, silly me. im using ghost squid cmqfxt. way i use it is that i rebinded scroll lock to fn layer and while in this layer, insert acts as macro record and when on default layer, it acts as macro play. worked just fine on older version[2015-something non-beta, it was in this topic before you updated it few days ago]
great, good to know. that sounds doable :) just wasnt aware of it.
I'll have to try it out on my Black Petal. I assume you've got your Fn key in toggle mode, right?
kinda. its lockable :) neither holding it nor double tap[toggle] works with macro record. it doesn't seems like it even starts recording, no led flashing
Well, I'm not sure what to tell you. I just programmed that exact configuration into my Black Petal (very similar to yours) and tried it. It works for me. Note that you won't see any flashing LEDs unless you program one to "recording" in the advanced LED settings.
-
Is there a way to hack into the KBParadise V60 to make it fully programmable?
I found this:
https://github.com/pellettiero/V60Mini-firmhack
I'm just not sure what I can do with it, or how to use it.
Any help would be appreciated!!
Cheers!
I don't think so.
-
well of course i had to leave out such important detail, silly me. im using ghost squid cmqfxt. way i use it is that i rebinded scroll lock to fn layer and while in this layer, insert acts as macro record and when on default layer, it acts as macro play. worked just fine on older version[2015-something non-beta, it was in this topic before you updated it few days ago]
great, good to know. that sounds doable :) just wasnt aware of it.
I'll have to try it out on my Black Petal. I assume you've got your Fn key in toggle mode, right?
kinda. its lockable :) neither holding it nor double tap[toggle] works with macro record. it doesn't seems like it even starts recording, no led flashing
Well, I'm not sure what to tell you. I just programmed that exact configuration into my Black Petal (very similar to yours) and tried it. It works for me. Note that you won't see any flashing LEDs unless you program one to "recording" in the advanced LED settings.
This is weird. I tried it again but I had to create the layout and firmware again[as I have overwritten the previous] and now it works for me as well. Looks like it might have been pebkac problem. At least it works now :) and got LEDs sorted out too. Thanks
-
Hi all, I am sure my question have been covered, but I just could find it. So appologies in advance if I did miss it.
I am running a KMAC, just install this firmware (work great) but i was wondering is there is any ways to get a SLEEP command. I would like to have Fn+ Pause to set my computer to sleep (win)
Thanks all, and apologies if it is a repeat
Cheers!
-
Hi all, I am sure my question have been covered, but I just could find it. So appologies in advance if I did miss it.
I am running a KMAC, just install this firmware (work great) but i was wondering is there is any ways to get a SLEEP command. I would like to have Fn+ Pause to set my computer to sleep (win)
Thanks all, and apologies if it is a repeat
Cheers!
Easy AVR firmware presents three USB endpoints to the computer. An HID keyboard, an HID mouse, and a media interface for the HID Consumer page (play, pause, volume, etc). Windows only understands the power commands on the HID Generic Desktop Controls page, which isn't currently implemented.
Getting it done is left as an exercise for the reader.
-
Easy AVR firmware presents three USB endpoints to the computer. An HID keyboard, an HID mouse, and a media interface for the HID Consumer page (play, pause, volume, etc). Windows only understands the power commands on the HID Generic Desktop Controls page, which isn't currently implemented.
Getting it done is left as an exercise for the reader.
Thanks for the answer, that makes sense.
Any examples of people doing that?
-
Is it possible to add support for FaceW boards?
-
Is it possible to add support for FaceW boards?
Can't you just use the WKL Bootmapper for that?
-
Easy AVR firmware presents three USB endpoints to the computer. An HID keyboard, an HID mouse, and a media interface for the HID Consumer page (play, pause, volume, etc). Windows only understands the power commands on the HID Generic Desktop Controls page, which isn't currently implemented.
Getting it done is left as an exercise for the reader.
Thanks for the answer, that makes sense.
Any examples of people doing that?
The source has only been available for a couple of weeks and from what I've seen no-one has attempted to do anything with it.
Another option would be to find find a combination of keys to do it - if you press the windows key the start menu pops up, then count how many arrow presses you need to to find the sleep button, then an enter to press it. Or perhaps it's easier after pressing ctrl alt del? I'm not in Windows and don't know which version you have to look it up, but if you can find a key sequence the macro is easy enough :)
-
Is it possible to add support for FaceW boards?
The answer to "Is it possible to add support for <board>" is usually the same as the answer to "Does <board> run on an ATmega32U4 or similar AVR."
If you want me to program support, you should provide me with the information I need. I don't have time to research these things. If you find matrix details, or have some TMK source code that's already working, then send it to me and I'll try to do it.
Or, you could get the source try and add support yourself.
-
Wow, just seen that you open-sourced EasyAVR, awesome, thank you metalliqaz!
I'll give a try on Orion v2, which is supposedly using the same controller than the v1.
I'm particularly interested in making all the LEDs controllable. I have zero experience in firmware development, but I know C and C++ (even if I didn't write any C in the last five years); do you think this is something I could manage to hack? I just don't want to burn the PCB... ;D
-
Wow, just seen that you open-sourced EasyAVR, awesome, thank you metalliqaz!
I'll give a try on Orion v2, which is supposedly using the same controller than the v1.
I'm particularly interested in making all the LEDs controllable. I have zero experience in firmware development, but I know C and C++ (even if I didn't write any C in the last five years); do you think this is something I could manage to hack? I just don't want to burn the PCB... ;D
Not only can you hack it, but you don't even need to modify the firmware to do so. You just need to find the right configuration. Easy!
-
Does Easy AVR use/import/include any special (non-standard Python) libraries whose source code I cannot see?
I really want to be able to understand every bit of your software, so I really want to see every source code line so I can understand how your software works, as I'm trying to use this to learn more about python.
New to Python so I'm not even sure if python #includes files.
Thanks.
-
Does Easy AVR use/import/include any special (non-standard Python) libraries whose source code I cannot see?
I really want to be able to understand every bit of your software, so I really want to see every source code line so I can understand how your software works, as I'm trying to use this to learn more about python.
New to Python so I'm not even sure if python #includes files.
Thanks.
It doesn't depend on any external libraries except for packaging.
But if you're trying to learn Python, don't use my keymapper. Seriously. The code is crap. It was created with no plan, tacking on features as I thought of them over the course of two years. It's full of needless complexity and almost completely lacks comments.
-
It doesn't depend on any external libraries except for packaging.
But if you're trying to learn Python, don't use my keymapper. Seriously. The code is crap. It was created with no plan, tacking on features as I thought of them over the course of two years. It's full of needless complexity and almost completely lacks comments.
[/quote]
Thank you for that quick reply
When you mean packaging, you mean to turn your code into an exe file right?
But since I'll be running the py file straight from the terminal, I won't need the packaging library, am I right?
Any python code to study to make my own keyboard someday is better than no code, haha, so I appreciate that you made it open source
-
Hey Metalliqaz, any other suggestions? I switched back to TMK last week as the doubles were starting to slow me down on some work.
I get 2-3 a day on TMK maybe, and seems mostly spaces. I can see them and if spellcheck is available in that app then itll inform me as well.
Hmmm, sounds like you're saying the issue also pops up on TMK. If that's the case, and since brentnycum reported that his Frosty Flake was working, I'm starting to think it could be your hardware :(
This weekend I had to do a little work on my home pc with a Razer Blackwidow Ultimate, cherry mx blues.
And sadly i saw 1-2 of these double types. So I can only think somehow I am doing something wrong. Is my hand doing a shake or something right at the actuation point on my way up? But I swear my hand is no where near some of those keys as I should already be on the way to the next one.
But at such a minimal amount of using it heavily for several days that just might be a general typo fluke.
What kind of setting might that be then, more debounce then? I do see a drastic increase when using your firmware vs TMK.
I have a spare Ducky shine1 w/ browns fullsize at the office so I'll try and use this for a bit out of curiosity and see if I hit that often.
If not then I must have a hardware issue either on the frostyflake or my brain.
-
Does Easy AVR use/import/include any special (non-standard Python) libraries whose source code I cannot see?
I really want to be able to understand every bit of your software, so I really want to see every source code line so I can understand how your software works, as I'm trying to use this to learn more about python.
New to Python so I'm not even sure if python #includes files.
Thanks.
It doesn't depend on any external libraries except for packaging.
But if you're trying to learn Python, don't use my keymapper. Seriously. The code is crap. It was created with no plan, tacking on features as I thought of them over the course of two years. It's full of needless complexity and almost completely lacks comments.
But the RESULT is awesome!
-
Finally wrote some documentation (https://github.com/dhowland/EasyAVR)
Hopefully this completes my task of making the tool usable by everyone who wants to try DIY keyboards
-
Wondering if anyone might know the resolution to an error I'm getting when trying to build firmware for Atreus?
I loaded the default Atreus keymap, made no edits and simply tried to create the firmware. The error I receive is: “init object is not iterable.”
I'm running in Windows 10; downloaded the EasyAvr software today and the version number is 2.01.04 from the About box.
I haven’t specifically downloaded any Python code but of course there is the “python34.dll” in the main directory.
-
Wondering if anyone might know the resolution to an error I'm getting when trying to build firmware for Atreus?
I loaded the default Atreus keymap, made no edits and simply tried to create the firmware. The error I receive is: “init object is not iterable.”
I'm running in Windows 10; downloaded the EasyAvr software today and the version number is 2.01.04 from the About box.
I haven’t specifically downloaded any Python code but of course there is the “python34.dll” in the main directory.
Probably I made a mistake with the config. Thanks for testing, I'll take a look
-
Is it possible to ue Easy AVR as a PS/2 > USB converter?..
-
Is it possible to ue Easy AVR as a PS/2 > USB converter?..
No. You need a Soarer-verter.
-
Wondering if anyone might know the resolution to an error I'm getting when trying to build firmware for Atreus?
I loaded the default Atreus keymap, made no edits and simply tried to create the firmware. The error I receive is: “init object is not iterable.”
I'm running in Windows 10; downloaded the EasyAvr software today and the version number is 2.01.04 from the About box.
I haven’t specifically downloaded any Python code but of course there is the “python34.dll” in the main directory.
I just released version 2.1.5 with a fix for this
-
Is it possible to ue Easy AVR as a PS/2 > USB converter?..
No. You need a Soarer-verter.
Okay, thanks for feedback - and I do run Soarer's now, but there is no support for custom key's outside of "normal" scope - and that is what I have with Tandberg TDV 5000 (https://deskthority.net/keyboards-f2/need-help-with-tandberg-tdv-5000-t13051.html)
-
I just released version 2.1.5 with a fix for this
Thanks for making the changes to the installation so quickly. I am able to confirm the previous error that appeared while trying to build the Atreus firmware is corrected.
Following your new documentation (many thanks) I have built the firmware, loaded the HEX file, and selected the microchip (ATmega32U4 for Atreus). However, when I choose USB with the “Select Communications Medium” icon I get the following error: AtLibUSBDfu.dll not found. Following this error message is another that says: Could not load dynamic library.
However, in checking the bin directory under the Flip 3.4.7 install, I do find the AtLibUSBDfu.dll.
Also, I have tried this process both prior to resetting the bootloader and while in the bootloader mode and got the same errors both times.
Is it possible the application can’t find a path to it, or do I need to install something else?
Thanks for your help and consideration.
-
I just released version 2.1.5 with a fix for this
Thanks for making the changes to the installation so quickly. I am able to confirm the previous error that appeared while trying to build the Atreus firmware is corrected.
Following your new documentation (many thanks) I have built the firmware, loaded the HEX file, and selected the microchip (ATmega32U4 for Atreus). However, when I choose USB with the “Select Communications Medium” icon I get the following error: AtLibUSBDfu.dll not found. Following this error message is another that says: Could not load dynamic library.
However, in checking the bin directory under the Flip 3.4.7 install, I do find the AtLibUSBDfu.dll.
Also, I have tried this process both prior to resetting the bootloader and while in the bootloader mode and got the same errors both times.
Is it possible the application can’t find a path to it, or do I need to install something else?
Thanks for your help and consideration.
Maybe you don't have the Atmel driver installed. Try reading this post (https://geekhack.org/index.php?topic=51252.msg1722090;topicseen#msg1722090)
-
Huge GH n00b (i'm over at r/mk but i fon't hate this place the sites design jsut confuses me so i rarely go here)
Can i make a custom layout, i am handwiring a preonic and i know how to program it this would just be aloteasier
-
Huge GH n00b (i'm over at r/mk but i fon't hate this place the sites design jsut confuses me so i rarely go here)
Can i make a custom layout, i am handwiring a preonic and i know how to program it this would just be aloteasier
Yes you can. Read the README.md on github
-
Maybe you don't have the Atmel driver installed. Try reading this post (https://geekhack.org/index.php?topic=51252.msg1722090;topicseen#msg1722090)
Thanks for directing me to that other post regarding installation for dfu-programmer and driver updates. It might be helpful to non-developers if you could add a few sub-steps in your documentation for Easy AVR in the Mac section. After Step 1 (download Easy AVR source from Github), Step 2 instructs to start the tool with easykeymap.sh.
What’s not explicit here is how to start it. I realize many here are developers but I’m not. I’m guessing what’s implied here is: a) go to Terminal b) change directories to the folder where Easy AVR was installed c) start the tool with easykeymap.sh.
If this route were to eventually work for me, should I expect to see a GUI interface similar to the Windows app or is it all command line inside of Terminal on the Mac?
I’m not sure if that’s correct, but that’s what I’ve done. I’m sure I have dfu-programmer installed, but when I enter easykeymap.sh I get “command not found.”
I’ve been trying for three days trying to get firmware onto an Atreus keyboard. I’m sure it’s my ineptitude, but I’ve tried in Windows and Mac environments. Got most of the way there in Window but couldn’t load the HEX in Windows because of either:
1) Device Manager in Windows 10 wouldn’t allow me to update the driver to the DFU driver…each time I tried on all the various USB connections I got a message that “Windows has determined the best driver is installed…”—obviously only one of them will work, but nothing is clearly identifying any of them as the Atmega32u4.
Thanks again for your continued assistance.
-
Huge GH n00b (i'm over at r/mk but i fon't hate this place the sites design jsut confuses me so i rarely go here)
Can i make a custom layout, i am handwiring a preonic and i know how to program it this would just be aloteasier
Yes you can. Read the README.md on github
Thank you so much, just made my life alot easier
-
Maybe you don't have the Atmel driver installed. Try reading this post (https://geekhack.org/index.php?topic=51252.msg1722090;topicseen#msg1722090)
Thanks for directing me to that other post regarding installation for dfu-programmer and driver updates. It might be helpful to non-developers if you could add a few sub-steps in your documentation for Easy AVR in the Mac section. After Step 1 (download Easy AVR source from Github), Step 2 instructs to start the tool with easykeymap.sh.
What’s not explicit here is how to start it. I realize many here are developers but I’m not. I’m guessing what’s implied here is: a) go to Terminal b) change directories to the folder where Easy AVR was installed c) start the tool with easykeymap.sh.
If this route were to eventually work for me, should I expect to see a GUI interface similar to the Windows app or is it all command line inside of Terminal on the Mac?
I’m not sure if that’s correct, but that’s what I’ve done. I’m sure I have dfu-programmer installed, but when I enter easykeymap.sh I get “command not found.”
I’ve been trying for three days trying to get firmware onto an Atreus keyboard. I’m sure it’s my ineptitude, but I’ve tried in Windows and Mac environments. Got most of the way there in Window but couldn’t load the HEX in Windows because of either:
1) Device Manager in Windows 10 wouldn’t allow me to update the driver to the DFU driver…each time I tried on all the various USB connections I got a message that “Windows has determined the best driver is installed…”—obviously only one of them will work, but nothing is clearly identifying any of them as the Atmega32u4.
Thanks again for your continued assistance.
If you're a novice, I'd suggest using Windows. I never had any trouble with Windows 10. I can't really remember if I had to install the driver or not, but it definitely works. You aren't supposed to update the USB connections, you're supposed to update the AVR device. Flip is Atmel's tool, not mine. If you need support, maybe you can ask them.
-
Does the handwired code support the teensy 2.0 ++ or do i need to buy a 2.0 for this to work?
(sorry if i am just missing something)
-
Does the handwired code support the teensy 2.0 ++ or do i need to buy a 2.0 for this to work?
(sorry if i am just missing something)
Yes, it is supported. It hasn't been tested, and in fact I need to fix something, but it will be working in the next release.
When writing your config file, the first thing the tutorial tells you to change is the import for the specific build you want to use. You have to choose one of the ones listed in the "keymapper/templates" subdirectory (see github).
Usually a handwire board would use ATmega32U4_16MHz_TKL.py for the Teensy, but for Teensy++, you would use AT90USB1286_16MHz_FULLSIZE.
-
Yay! 2.1.6 is posted
-
Hey Metalliqaz, is there a way to create a looping mouse button 1 macro through EasyAVR? Something that could be toggled on/off?
Looping forever would be cool, but if not, then for as long as possible.
-
Hey Metalliqaz, is there a way to create a looping mouse button 1 macro through EasyAVR? Something that could be toggled on/off?
Looping forever would be cool, but if not, then for as long as possible.
Sorry, it doesn't support anything like that :(
-
Hey Metalliqaz, is there a way to create a looping mouse button 1 macro through EasyAVR? Something that could be toggled on/off?
Looping forever would be cool, but if not, then for as long as possible.
Sorry, it doesn't support anything like that :(
Darn, thanks anyway man.
Keep up the good work on this project, it's awesome. :)
-
The firmware i build does not work, i use a teensy 2.0 ++ and the layout is a 5x12 ortholinear keyboard, the binds for the buttuns are not chanches since i wanted to test first
This is the config file
# Easy AVR USB Keyboard Firmware Keymapper
# Copyright (C) 2013-2016 David Howland
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
"""Keyboard definition for a hand-wired keyboard"""
# The first decision you have to make is to choose a hardware
# layout. Assuming you are using a Teensy2.0, this is probably
# the best hardware layout for you. ATmega32U4_16MHz_SIXTY might
# also work for you, though. Leave the rest of the imports like
# they are here.
import easykeymap.templates.AT90USB1286_16MHz_FULLSIZE as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config
# The name of the board in the "New" dialog
description = "Hand-wire-preonic"
# Unique string to identify THIS exact hardware layout
unique_id = "HANDWIRE_420"
# The name of the .cfg file the system will try to find for altered
# layout options
cfg_name = "handwire_420"
# Hand-wired boards usually use Teensy controllers. Set this to
# True to make sure that the bootloader works.
teensy = True
# If your board has an exposed switch for going into boot mode, you
# can set this to True and the system won't prompt you to add a BOOT
# key to your layout.
hw_boot_key = True
# These two parameters define the size of the keyboard in the display.
# Must be whole numbers in units of quarter key lengths. A TKL
# usually is 6 rows high with a 1/2 key length gutter under the Fn row.
# Therefore int(6.5*4). Apply the same logic the width. Remember
# we are talking visual width, not number of columns.
display_height = int(5*4)
display_width = int(12*4)
# The number of rows and columns in the matrix. In a hand-wired board
# each of these will correspond to a single pin.
num_rows = 5
num_cols = 12
# Keyboards work by scanning a matrix to check each key. The scan
# works by setting an active row/column (strobing) and then reading
# the status of every switch that crosses it (sensing).
# strobe_cols tells the firmware which direction you have your diodes
# installed. If diodes go from column to row, then strobe_cols must
# be True. If diodes go from row to column, then strobe_cols must be
# False.
strobe_cols = True
# strobe_low tells the firmware if a row/column should be activated
# by pulling the pin high or low. Hand-wired boards will almost always
# use strobe_low = True
strobe_low = True
# The matrix_hardware, matrix_strobe, matrix_sense parameters tell
# the firmware how to initialize the ports, what pins must be set
# for each row/column, and what order to strobe/sense. These are
# complicated and are explained fully elsewhere. It is easiest to
# configure the matrix by using the make_matrix_config function as
# shown below. Just customize 'rows' and 'cols' for your project.
matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
strobe_cols=strobe_cols,
strobe_low=strobe_low,
rows=[F0, F1, F2, F3, F3],
cols=[D6, D7, E0, E1, C0, C1, C2, C3, C4, C5, C6, C7],
device=firmware.device
)
# The total number of LED outputs (indicators + backlights)
num_leds = 0
# The number of LED indicators (for example, caps lock)
num_ind = 0
# The number of backlight enable modes. This counts the number of
# options available for the BL_ENABLE key
num_bl_enab = 0
# Define the default assignments of the indicator LEDs. The length
# of this list must equal num_ind. For each LED, the first string
# is the description of the key shown in the GUI. The second string
# is the default function. For valid function options, see
# led_assignments in gui.py
led_definition = [
]
# Definition of LED pins. (indicators and backlights) Indicators
# must come first. LED_DRIVER_PULLUP is used when the pin is connected
# to the anode and the cathode is connected to ground.
# LED_DRIVER_PULLDOWN is used when the pin is connected to the cathode
# and the anode is connected to the power supply.
led_hardware = [
#
]
# True if the board supports backlight, otherwise False
backlighting = False
# This can be used to configure different backlighting zones. Explained
# in more detail elsewhere. Length of list must equal num_bl_enab.
# Length of each tuple must equal num_leds. Uses the same ordering
# as led_hardware
bl_modes = [
]
# Just leave this here as-is.
KMAC_key = None
# Define your layout. This is a list of rows. Each row is a list
# of keys. Each key is a tuple of three items. First item is a tuple
# defining the width,height of the key. If it is just a number, it
# will be a space instead of a key. All units are in quarter key lengths,
# so a standard key would be (4,4). Second item is a tuple defining the
# row,column in the matrix for that key. Third item is the default scancode
# for that key, from scancodes.py. If a row is a number instead of a list,
# it will just make a vertical spacer.
keyboard_definition = [
[((4, 4), (0, 0), 'HID_KEYBOARD_SC_ESCAPE'),
((4, 4), (0, 1), 'HID_KEYBOARD_SC_F1'),
((4, 4), (0, 2), 'HID_KEYBOARD_SC_F2'),
((4, 4), (0, 3), 'HID_KEYBOARD_SC_F3'),
((4, 4), (0, 4), 'HID_KEYBOARD_SC_F4'),
((4, 4), (0, 5), 'HID_KEYBOARD_SC_F5'),
((4, 4), (0, 6), 'HID_KEYBOARD_SC_F6'),
((4, 4), (0, 7), 'HID_KEYBOARD_SC_F7'),
((4, 4), (0, 8), 'HID_KEYBOARD_SC_F8'),
((4, 4), (0, 9), 'HID_KEYBOARD_SC_F9'),
((4, 4), (0, 10), 'HID_KEYBOARD_SC_F10'),
((4, 4), (0, 11), 'HID_KEYBOARD_SC_F11')],
[((4, 4), (1, 0), 'HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE'),
((4, 4), (1, 1), 'HID_KEYBOARD_SC_1_AND_EXCLAMATION'),
((4, 4), (1, 2), 'HID_KEYBOARD_SC_2_AND_AT'),
((4, 4), (1, 3), 'HID_KEYBOARD_SC_3_AND_HASHMARK'),
((4, 4), (1, 4), 'HID_KEYBOARD_SC_4_AND_DOLLAR'),
((4, 4), (1, 5), 'HID_KEYBOARD_SC_5_AND_PERCENTAGE'),
((4, 4), (1, 6), 'HID_KEYBOARD_SC_6_AND_CARET'),
((4, 4), (1, 7), 'HID_KEYBOARD_SC_7_AND_AND_AMPERSAND'),
((4, 4), (1, 8), 'HID_KEYBOARD_SC_8_AND_ASTERISK'),
((4, 4), (1, 9), 'HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS'),
((4, 4), (1, 10), 'HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE'),
((4, 4), (1, 11), 'HID_KEYBOARD_SC_PAGE_UP')],
[((4, 4), (2, 0), 'HID_KEYBOARD_SC_TAB'),
((4, 4), (2, 1), 'HID_KEYBOARD_SC_Q'),
((4, 4), (2, 2), 'HID_KEYBOARD_SC_W'),
((4, 4), (2, 3), 'HID_KEYBOARD_SC_E'),
((4, 4), (2, 4), 'HID_KEYBOARD_SC_R'),
((4, 4), (2, 5), 'HID_KEYBOARD_SC_T'),
((4, 4), (2, 6), 'HID_KEYBOARD_SC_Y'),
((4, 4), (2, 7), 'HID_KEYBOARD_SC_U'),
((4, 4), (2, 8), 'HID_KEYBOARD_SC_I'),
((4, 4), (2, 9), 'HID_KEYBOARD_SC_O'),
((4, 4), (2, 10), 'HID_KEYBOARD_SC_P'),
((4, 4), (2, 11), 'HID_KEYBOARD_SC_PAGE_DOWN')],
[((4, 4), (3, 0), 'HID_KEYBOARD_SC_CAPS_LOCK'),
((4, 4), (3, 1), 'HID_KEYBOARD_SC_A'),
((4, 4), (3, 2), 'HID_KEYBOARD_SC_S'),
((4, 4), (3, 3), 'HID_KEYBOARD_SC_D'),
((4, 4), (3, 4), 'HID_KEYBOARD_SC_F'),
((4, 4), (3, 5), 'HID_KEYBOARD_SC_G'),
((4, 4), (3, 6), 'HID_KEYBOARD_SC_H'),
((4, 4), (3, 7), 'HID_KEYBOARD_SC_J'),
((4, 4), (3, 8), 'HID_KEYBOARD_SC_K'),
((4, 4), (3, 9), 'HID_KEYBOARD_SC_L'),
((4, 4), (3, 10), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE'),
((4, 4), (3, 11), 'HID_KEYBOARD_SC_ENTER')],
[((4, 4), (4, 0), 'HID_KEYBOARD_SC_LEFT_SHIFT'),
((4, 4), (4, 1), 'HID_KEYBOARD_SC_Z'),
((4, 4), (4, 2), 'HID_KEYBOARD_SC_X'),
((4, 4), (4, 3), 'HID_KEYBOARD_SC_C'),
((4, 4), (4, 4), 'HID_KEYBOARD_SC_V'),
((4, 4), (4, 5), 'HID_KEYBOARD_SC_B'),
((4, 4), (4, 6), 'HID_KEYBOARD_SC_N'),
((4, 4), (4, 7), 'HID_KEYBOARD_SC_M'),
((4, 4), (4, 8), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
((4, 4), (4, 9), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
((4, 4), (4, 10), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK'),
((4, 4), (4, 11), 'HID_KEYBOARD_SC_RIGHT_SHIFT')]
]
# Just leave this here as-is.
alt_layouts = {}
-
The firmware i build does not work, i use a teensy 2.0 ++ and the layout is a 5x12 ortholinear keyboard, the binds for the buttuns are not chanches since i wanted to test first
This is the config file
# Easy AVR USB Keyboard Firmware Keymapper
# Copyright (C) 2013-2016 David Howland
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
"""Keyboard definition for a hand-wired keyboard"""
# The first decision you have to make is to choose a hardware
# layout. Assuming you are using a Teensy2.0, this is probably
# the best hardware layout for you. ATmega32U4_16MHz_SIXTY might
# also work for you, though. Leave the rest of the imports like
# they are here.
import easykeymap.templates.AT90USB1286_16MHz_FULLSIZE as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config
# The name of the board in the "New" dialog
description = "Hand-wire-preonic"
# Unique string to identify THIS exact hardware layout
unique_id = "HANDWIRE_420"
# The name of the .cfg file the system will try to find for altered
# layout options
cfg_name = "handwire_420"
# Hand-wired boards usually use Teensy controllers. Set this to
# True to make sure that the bootloader works.
teensy = True
# If your board has an exposed switch for going into boot mode, you
# can set this to True and the system won't prompt you to add a BOOT
# key to your layout.
hw_boot_key = True
# These two parameters define the size of the keyboard in the display.
# Must be whole numbers in units of quarter key lengths. A TKL
# usually is 6 rows high with a 1/2 key length gutter under the Fn row.
# Therefore int(6.5*4). Apply the same logic the width. Remember
# we are talking visual width, not number of columns.
display_height = int(5*4)
display_width = int(12*4)
# The number of rows and columns in the matrix. In a hand-wired board
# each of these will correspond to a single pin.
num_rows = 5
num_cols = 12
# Keyboards work by scanning a matrix to check each key. The scan
# works by setting an active row/column (strobing) and then reading
# the status of every switch that crosses it (sensing).
# strobe_cols tells the firmware which direction you have your diodes
# installed. If diodes go from column to row, then strobe_cols must
# be True. If diodes go from row to column, then strobe_cols must be
# False.
strobe_cols = True
# strobe_low tells the firmware if a row/column should be activated
# by pulling the pin high or low. Hand-wired boards will almost always
# use strobe_low = True
strobe_low = True
# The matrix_hardware, matrix_strobe, matrix_sense parameters tell
# the firmware how to initialize the ports, what pins must be set
# for each row/column, and what order to strobe/sense. These are
# complicated and are explained fully elsewhere. It is easiest to
# configure the matrix by using the make_matrix_config function as
# shown below. Just customize 'rows' and 'cols' for your project.
matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
strobe_cols=strobe_cols,
strobe_low=strobe_low,
rows=[F0, F1, F2, F3, F3],
cols=[D6, D7, E0, E1, C0, C1, C2, C3, C4, C5, C6, C7],
device=firmware.device
)
# The total number of LED outputs (indicators + backlights)
num_leds = 0
# The number of LED indicators (for example, caps lock)
num_ind = 0
# The number of backlight enable modes. This counts the number of
# options available for the BL_ENABLE key
num_bl_enab = 0
# Define the default assignments of the indicator LEDs. The length
# of this list must equal num_ind. For each LED, the first string
# is the description of the key shown in the GUI. The second string
# is the default function. For valid function options, see
# led_assignments in gui.py
led_definition = [
]
# Definition of LED pins. (indicators and backlights) Indicators
# must come first. LED_DRIVER_PULLUP is used when the pin is connected
# to the anode and the cathode is connected to ground.
# LED_DRIVER_PULLDOWN is used when the pin is connected to the cathode
# and the anode is connected to the power supply.
led_hardware = [
#
]
# True if the board supports backlight, otherwise False
backlighting = False
# This can be used to configure different backlighting zones. Explained
# in more detail elsewhere. Length of list must equal num_bl_enab.
# Length of each tuple must equal num_leds. Uses the same ordering
# as led_hardware
bl_modes = [
]
# Just leave this here as-is.
KMAC_key = None
# Define your layout. This is a list of rows. Each row is a list
# of keys. Each key is a tuple of three items. First item is a tuple
# defining the width,height of the key. If it is just a number, it
# will be a space instead of a key. All units are in quarter key lengths,
# so a standard key would be (4,4). Second item is a tuple defining the
# row,column in the matrix for that key. Third item is the default scancode
# for that key, from scancodes.py. If a row is a number instead of a list,
# it will just make a vertical spacer.
keyboard_definition = [
[((4, 4), (0, 0), 'HID_KEYBOARD_SC_ESCAPE'),
((4, 4), (0, 1), 'HID_KEYBOARD_SC_F1'),
((4, 4), (0, 2), 'HID_KEYBOARD_SC_F2'),
((4, 4), (0, 3), 'HID_KEYBOARD_SC_F3'),
((4, 4), (0, 4), 'HID_KEYBOARD_SC_F4'),
((4, 4), (0, 5), 'HID_KEYBOARD_SC_F5'),
((4, 4), (0, 6), 'HID_KEYBOARD_SC_F6'),
((4, 4), (0, 7), 'HID_KEYBOARD_SC_F7'),
((4, 4), (0, 8), 'HID_KEYBOARD_SC_F8'),
((4, 4), (0, 9), 'HID_KEYBOARD_SC_F9'),
((4, 4), (0, 10), 'HID_KEYBOARD_SC_F10'),
((4, 4), (0, 11), 'HID_KEYBOARD_SC_F11')],
[((4, 4), (1, 0), 'HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE'),
((4, 4), (1, 1), 'HID_KEYBOARD_SC_1_AND_EXCLAMATION'),
((4, 4), (1, 2), 'HID_KEYBOARD_SC_2_AND_AT'),
((4, 4), (1, 3), 'HID_KEYBOARD_SC_3_AND_HASHMARK'),
((4, 4), (1, 4), 'HID_KEYBOARD_SC_4_AND_DOLLAR'),
((4, 4), (1, 5), 'HID_KEYBOARD_SC_5_AND_PERCENTAGE'),
((4, 4), (1, 6), 'HID_KEYBOARD_SC_6_AND_CARET'),
((4, 4), (1, 7), 'HID_KEYBOARD_SC_7_AND_AND_AMPERSAND'),
((4, 4), (1, 8), 'HID_KEYBOARD_SC_8_AND_ASTERISK'),
((4, 4), (1, 9), 'HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS'),
((4, 4), (1, 10), 'HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE'),
((4, 4), (1, 11), 'HID_KEYBOARD_SC_PAGE_UP')],
[((4, 4), (2, 0), 'HID_KEYBOARD_SC_TAB'),
((4, 4), (2, 1), 'HID_KEYBOARD_SC_Q'),
((4, 4), (2, 2), 'HID_KEYBOARD_SC_W'),
((4, 4), (2, 3), 'HID_KEYBOARD_SC_E'),
((4, 4), (2, 4), 'HID_KEYBOARD_SC_R'),
((4, 4), (2, 5), 'HID_KEYBOARD_SC_T'),
((4, 4), (2, 6), 'HID_KEYBOARD_SC_Y'),
((4, 4), (2, 7), 'HID_KEYBOARD_SC_U'),
((4, 4), (2, 8), 'HID_KEYBOARD_SC_I'),
((4, 4), (2, 9), 'HID_KEYBOARD_SC_O'),
((4, 4), (2, 10), 'HID_KEYBOARD_SC_P'),
((4, 4), (2, 11), 'HID_KEYBOARD_SC_PAGE_DOWN')],
[((4, 4), (3, 0), 'HID_KEYBOARD_SC_CAPS_LOCK'),
((4, 4), (3, 1), 'HID_KEYBOARD_SC_A'),
((4, 4), (3, 2), 'HID_KEYBOARD_SC_S'),
((4, 4), (3, 3), 'HID_KEYBOARD_SC_D'),
((4, 4), (3, 4), 'HID_KEYBOARD_SC_F'),
((4, 4), (3, 5), 'HID_KEYBOARD_SC_G'),
((4, 4), (3, 6), 'HID_KEYBOARD_SC_H'),
((4, 4), (3, 7), 'HID_KEYBOARD_SC_J'),
((4, 4), (3, 8), 'HID_KEYBOARD_SC_K'),
((4, 4), (3, 9), 'HID_KEYBOARD_SC_L'),
((4, 4), (3, 10), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE'),
((4, 4), (3, 11), 'HID_KEYBOARD_SC_ENTER')],
[((4, 4), (4, 0), 'HID_KEYBOARD_SC_LEFT_SHIFT'),
((4, 4), (4, 1), 'HID_KEYBOARD_SC_Z'),
((4, 4), (4, 2), 'HID_KEYBOARD_SC_X'),
((4, 4), (4, 3), 'HID_KEYBOARD_SC_C'),
((4, 4), (4, 4), 'HID_KEYBOARD_SC_V'),
((4, 4), (4, 5), 'HID_KEYBOARD_SC_B'),
((4, 4), (4, 6), 'HID_KEYBOARD_SC_N'),
((4, 4), (4, 7), 'HID_KEYBOARD_SC_M'),
((4, 4), (4, 8), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
((4, 4), (4, 9), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
((4, 4), (4, 10), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK'),
((4, 4), (4, 11), 'HID_KEYBOARD_SC_RIGHT_SHIFT')]
]
# Just leave this here as-is.
alt_layouts = {}
I've just tested this config file with a Teensy 2++ and a piece of wire and it works fine using the latest Windows download. That probably means your diodes are not connected in the way they're set in the config file so that's the first thing to check.
If in doubt post a pic of your wiring :)
-
The firmware i build does not work, i use a teensy 2.0 ++ and the layout is a 5x12 ortholinear keyboard, the binds for the buttuns are not chanches since i wanted to test first
This is the config file
# Easy AVR USB Keyboard Firmware Keymapper
# Copyright (C) 2013-2016 David Howland
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
"""Keyboard definition for a hand-wired keyboard"""
# The first decision you have to make is to choose a hardware
# layout. Assuming you are using a Teensy2.0, this is probably
# the best hardware layout for you. ATmega32U4_16MHz_SIXTY might
# also work for you, though. Leave the rest of the imports like
# they are here.
import easykeymap.templates.AT90USB1286_16MHz_FULLSIZE as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config
# The name of the board in the "New" dialog
description = "Hand-wire-preonic"
# Unique string to identify THIS exact hardware layout
unique_id = "HANDWIRE_420"
# The name of the .cfg file the system will try to find for altered
# layout options
cfg_name = "handwire_420"
# Hand-wired boards usually use Teensy controllers. Set this to
# True to make sure that the bootloader works.
teensy = True
# If your board has an exposed switch for going into boot mode, you
# can set this to True and the system won't prompt you to add a BOOT
# key to your layout.
hw_boot_key = True
# These two parameters define the size of the keyboard in the display.
# Must be whole numbers in units of quarter key lengths. A TKL
# usually is 6 rows high with a 1/2 key length gutter under the Fn row.
# Therefore int(6.5*4). Apply the same logic the width. Remember
# we are talking visual width, not number of columns.
display_height = int(5*4)
display_width = int(12*4)
# The number of rows and columns in the matrix. In a hand-wired board
# each of these will correspond to a single pin.
num_rows = 5
num_cols = 12
# Keyboards work by scanning a matrix to check each key. The scan
# works by setting an active row/column (strobing) and then reading
# the status of every switch that crosses it (sensing).
# strobe_cols tells the firmware which direction you have your diodes
# installed. If diodes go from column to row, then strobe_cols must
# be True. If diodes go from row to column, then strobe_cols must be
# False.
strobe_cols = True
# strobe_low tells the firmware if a row/column should be activated
# by pulling the pin high or low. Hand-wired boards will almost always
# use strobe_low = True
strobe_low = True
# The matrix_hardware, matrix_strobe, matrix_sense parameters tell
# the firmware how to initialize the ports, what pins must be set
# for each row/column, and what order to strobe/sense. These are
# complicated and are explained fully elsewhere. It is easiest to
# configure the matrix by using the make_matrix_config function as
# shown below. Just customize 'rows' and 'cols' for your project.
matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
strobe_cols=strobe_cols,
strobe_low=strobe_low,
rows=[F0, F1, F2, F3, F3],
cols=[D6, D7, E0, E1, C0, C1, C2, C3, C4, C5, C6, C7],
device=firmware.device
)
# The total number of LED outputs (indicators + backlights)
num_leds = 0
# The number of LED indicators (for example, caps lock)
num_ind = 0
# The number of backlight enable modes. This counts the number of
# options available for the BL_ENABLE key
num_bl_enab = 0
# Define the default assignments of the indicator LEDs. The length
# of this list must equal num_ind. For each LED, the first string
# is the description of the key shown in the GUI. The second string
# is the default function. For valid function options, see
# led_assignments in gui.py
led_definition = [
]
# Definition of LED pins. (indicators and backlights) Indicators
# must come first. LED_DRIVER_PULLUP is used when the pin is connected
# to the anode and the cathode is connected to ground.
# LED_DRIVER_PULLDOWN is used when the pin is connected to the cathode
# and the anode is connected to the power supply.
led_hardware = [
#
]
# True if the board supports backlight, otherwise False
backlighting = False
# This can be used to configure different backlighting zones. Explained
# in more detail elsewhere. Length of list must equal num_bl_enab.
# Length of each tuple must equal num_leds. Uses the same ordering
# as led_hardware
bl_modes = [
]
# Just leave this here as-is.
KMAC_key = None
# Define your layout. This is a list of rows. Each row is a list
# of keys. Each key is a tuple of three items. First item is a tuple
# defining the width,height of the key. If it is just a number, it
# will be a space instead of a key. All units are in quarter key lengths,
# so a standard key would be (4,4). Second item is a tuple defining the
# row,column in the matrix for that key. Third item is the default scancode
# for that key, from scancodes.py. If a row is a number instead of a list,
# it will just make a vertical spacer.
keyboard_definition = [
[((4, 4), (0, 0), 'HID_KEYBOARD_SC_ESCAPE'),
((4, 4), (0, 1), 'HID_KEYBOARD_SC_F1'),
((4, 4), (0, 2), 'HID_KEYBOARD_SC_F2'),
((4, 4), (0, 3), 'HID_KEYBOARD_SC_F3'),
((4, 4), (0, 4), 'HID_KEYBOARD_SC_F4'),
((4, 4), (0, 5), 'HID_KEYBOARD_SC_F5'),
((4, 4), (0, 6), 'HID_KEYBOARD_SC_F6'),
((4, 4), (0, 7), 'HID_KEYBOARD_SC_F7'),
((4, 4), (0, 8), 'HID_KEYBOARD_SC_F8'),
((4, 4), (0, 9), 'HID_KEYBOARD_SC_F9'),
((4, 4), (0, 10), 'HID_KEYBOARD_SC_F10'),
((4, 4), (0, 11), 'HID_KEYBOARD_SC_F11')],
[((4, 4), (1, 0), 'HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE'),
((4, 4), (1, 1), 'HID_KEYBOARD_SC_1_AND_EXCLAMATION'),
((4, 4), (1, 2), 'HID_KEYBOARD_SC_2_AND_AT'),
((4, 4), (1, 3), 'HID_KEYBOARD_SC_3_AND_HASHMARK'),
((4, 4), (1, 4), 'HID_KEYBOARD_SC_4_AND_DOLLAR'),
((4, 4), (1, 5), 'HID_KEYBOARD_SC_5_AND_PERCENTAGE'),
((4, 4), (1, 6), 'HID_KEYBOARD_SC_6_AND_CARET'),
((4, 4), (1, 7), 'HID_KEYBOARD_SC_7_AND_AND_AMPERSAND'),
((4, 4), (1, 8), 'HID_KEYBOARD_SC_8_AND_ASTERISK'),
((4, 4), (1, 9), 'HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS'),
((4, 4), (1, 10), 'HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE'),
((4, 4), (1, 11), 'HID_KEYBOARD_SC_PAGE_UP')],
[((4, 4), (2, 0), 'HID_KEYBOARD_SC_TAB'),
((4, 4), (2, 1), 'HID_KEYBOARD_SC_Q'),
((4, 4), (2, 2), 'HID_KEYBOARD_SC_W'),
((4, 4), (2, 3), 'HID_KEYBOARD_SC_E'),
((4, 4), (2, 4), 'HID_KEYBOARD_SC_R'),
((4, 4), (2, 5), 'HID_KEYBOARD_SC_T'),
((4, 4), (2, 6), 'HID_KEYBOARD_SC_Y'),
((4, 4), (2, 7), 'HID_KEYBOARD_SC_U'),
((4, 4), (2, 8), 'HID_KEYBOARD_SC_I'),
((4, 4), (2, 9), 'HID_KEYBOARD_SC_O'),
((4, 4), (2, 10), 'HID_KEYBOARD_SC_P'),
((4, 4), (2, 11), 'HID_KEYBOARD_SC_PAGE_DOWN')],
[((4, 4), (3, 0), 'HID_KEYBOARD_SC_CAPS_LOCK'),
((4, 4), (3, 1), 'HID_KEYBOARD_SC_A'),
((4, 4), (3, 2), 'HID_KEYBOARD_SC_S'),
((4, 4), (3, 3), 'HID_KEYBOARD_SC_D'),
((4, 4), (3, 4), 'HID_KEYBOARD_SC_F'),
((4, 4), (3, 5), 'HID_KEYBOARD_SC_G'),
((4, 4), (3, 6), 'HID_KEYBOARD_SC_H'),
((4, 4), (3, 7), 'HID_KEYBOARD_SC_J'),
((4, 4), (3, 8), 'HID_KEYBOARD_SC_K'),
((4, 4), (3, 9), 'HID_KEYBOARD_SC_L'),
((4, 4), (3, 10), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE'),
((4, 4), (3, 11), 'HID_KEYBOARD_SC_ENTER')],
[((4, 4), (4, 0), 'HID_KEYBOARD_SC_LEFT_SHIFT'),
((4, 4), (4, 1), 'HID_KEYBOARD_SC_Z'),
((4, 4), (4, 2), 'HID_KEYBOARD_SC_X'),
((4, 4), (4, 3), 'HID_KEYBOARD_SC_C'),
((4, 4), (4, 4), 'HID_KEYBOARD_SC_V'),
((4, 4), (4, 5), 'HID_KEYBOARD_SC_B'),
((4, 4), (4, 6), 'HID_KEYBOARD_SC_N'),
((4, 4), (4, 7), 'HID_KEYBOARD_SC_M'),
((4, 4), (4, 8), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
((4, 4), (4, 9), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
((4, 4), (4, 10), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK'),
((4, 4), (4, 11), 'HID_KEYBOARD_SC_RIGHT_SHIFT')]
]
# Just leave this here as-is.
alt_layouts = {}
I've just tested this config file with a Teensy 2++ and a piece of wire and it works fine using the latest Windows download. That probably means your diodes are not connected in the way they're set in the config file so that's the first thing to check.
If in doubt post a pic of your wiring :)
it is the right way, fron the switches to the row, i might not have the latest version, ill download latest of github and try later, now i am on mobile
-
Definitely make sure you're using the newest version. Teensy++ support was broken prior to 2.1.5
-
Definitely make sure you're using the newest version. Teensy++ support was broken prior to 2.1.5
Updated to latest version, redid everything, still doesn't work
-
What exactly happens?
-
What exactly happens?
Nothing, nothing happend, none off the keys work it does not even spamm outputs
-
What exactly happens?
Nothing, nothing happend, none off the keys work it does not even spamm outputs
Try shorting F1 to any of the Cx pins with a piece of wire - if that outputs a number row character it confirms a diode direction problem, if it doesn't the firmware can't be flashing successfully as the config is fine.
-
What exactly happens?
Nothing, nothing happend, none off the keys work it does not even spamm outputs
Try shorting F1 to any of the Cx pins with a piece of wire - if that outputs a number row character it confirms a diode direction problem, if it doesn't the firmware can't be flashing successfully as the config is fine.
Cant i just try to change the diodes in the formware without chekibg the board
-
What exactly happens?
Nothing, nothing happend, none off the keys work it does not even spamm outputs
Try shorting F1 to any of the Cx pins with a piece of wire - if that outputs a number row character it confirms a diode direction problem, if it doesn't the firmware can't be flashing successfully as the config is fine.
Cant i just try to change the diodes in the formware without chekibg the board
You can, there are two options strobe_cols and strobe_low which need to match your wiring so not too many combinations to try :)
-
What exactly happens?
Nothing, nothing happend, none off the keys work it does not even spamm outputs
Try shorting F1 to any of the Cx pins with a piece of wire - if that outputs a number row character it confirms a diode direction problem, if it doesn't the firmware can't be flashing successfully as the config is fine.
Cant i just try to change the diodes in the formware without chekibg the board
You can, there are two options strobe_cols and strobe_low which need to match your wiring so not too many combinations to try :)
I tried changing the diodes way, now i can write a letter and that is correct and then it spamms things, all of them are on the first row, i'll check the wiring there.
EDIT: the wiring looks good and i don't know why this is happening (also it is on pin d6)
-
Try not to use the pin D6 on the Teensy as it is used for the LED as well, that might be causing an issue.
-
Would this work with a B.face X2 PCB? I'm looking for a 60% PCB that works with this firmware since I loved it on my Orion.
-
Try not to use the pin D6 on the Teensy as it is used for the LED as well, that might be causing an issue.
Yeah, what Moz said
-
Would this work with a B.face X2 PCB? I'm looking for a 60% PCB that works with this firmware since I loved it on my Orion.
Where is the hardware description?
Anyway, if it runs on an Atmega32u4, it should work. OTD boards tend to use non-USB AVR parts, though, and those aren't supported
-
All the B series PCBs use Atmega32A and vUSB, so they aren't supported.
As a general rule,
- winkeyless.kr (B series) PCBs use Atmega32A, which isn't supported. Use their bootMapperClient application
- Leeku/LifeZone PCBs also use Atmega32A. Use their JigOn application
- Duck keyboards use Atmega32u4 and can be programmed using Easy AVR/TMK.
- GON's keyboards also use Atmega32U4 and can be programmed using Easy AVR/TMK but the bootloader has to be changed.
- Most boards developed in the west use Atmega32u4 or a Atmel USB AVR MCU (Atmega32u4, AT90USB1286, Atmega32u2, Atmega16u2, etc)
- InputClub keyboards use Kinetis K20 based MCU, which isn't supported. Use their online configurator.
-
Try not to use the pin D6 on the Teensy as it is used for the LED as well, that might be causing an issue.
Yeah, what Moz said
Thanks! every thing is working now, finally. Everyone has been really helpfull
-
So changing the D6 input to some other pin worked?
-
Would this work with a B.face X2 PCB? I'm looking for a 60% PCB that works with this firmware since I loved it on my Orion.
If you don't need backlighting you could get a gh60 from techkeys (http://techkeys.us)?
-
Would this work with a B.face X2 PCB? I'm looking for a 60% PCB that works with this firmware since I loved it on my Orion.
If you don't need backlighting you could get a gh60 from techkeys (http://techkeys.us)?
I don't. I'm planning on using it in a Weaven 60% (https://geekhack.org/index.php?topic=78422.0) case so all I need is regular LED support. The back will be covered in CF anyway. :P
I was kind of hoping of being able to use a black PCB but that is very clean and complete looking...
-
JaccoW, backlighting is the "regular" lighting that is used on each switch, which isn't supported by the GH60. What you are referring to is commonly called underglow/sideglow (LEDs soldered on the underside of the PCB for glow through the bottom of the case.
-
JaccoW, backlighting is the "regular" lighting that is used on each switch, which isn't supported by the GH60. What you are referring to is commonly called underglow/sideglow (LEDs soldered on the underside of the PCB for glow through the bottom of the case.
crap. I thought I saw LED holes on the Techkeys website but those are just for the diodes I guess.
-
JaccoW, backlighting is the "regular" lighting that is used on each switch, which isn't supported by the GH60. What you are referring to is commonly called underglow/sideglow (LEDs soldered on the underside of the PCB for glow through the bottom of the case.
crap. I thought I saw LED holes on the Techkeys website but those are just for the diodes I guess.
An gh60 satan pcb is about the same price and has support for backlightning
Ebay: http://www.ebay.com/itm/272032784852
This is also supported by this tool, the seller of it also has switches plates e.tc so everything you need to make a board, note that they don't ship to everywhere tho so see if your country is supported
-
Hey Metalliqaz, any other suggestions? I switched back to TMK last week as the doubles were starting to slow me down on some work.
I get 2-3 a day on TMK maybe, and seems mostly spaces. I can see them and if spellcheck is available in that app then itll inform me as well.
Hmmm, sounds like you're saying the issue also pops up on TMK. If that's the case, and since brentnycum reported that his Frosty Flake was working, I'm starting to think it could be your hardware :(
This weekend I had to do a little work on my home pc with a Razer Blackwidow Ultimate, cherry mx blues.
And sadly i saw 1-2 of these double types. So I can only think somehow I am doing something wrong. Is my hand doing a shake or something right at the actuation point on my way up? But I swear my hand is no where near some of those keys as I should already be on the way to the next one.
But at such a minimal amount of using it heavily for several days that just might be a general typo fluke.
What kind of setting might that be then, more debounce then? I do see a drastic increase when using your firmware vs TMK.
I have a spare Ducky shine1 w/ browns fullsize at the office so I'll try and use this for a bit out of curiosity and see if I hit that often.
If not then I must have a hardware issue either on the frostyflake or my brain.
I did a little more typing yesterday at home and yea, something is up with me it seems. I get them on the razer but again not that many. 2-3 in a day maybe.
So I would it seems to be on par with TMK on the frosty flake. some here and there. But Easy AVR seems to trigger it way more often.
Any suggests on matrix/debounce that may help?
I'm also wondering if a heavier switch would help. I've been wanting to try clears for a bit now.
-
I did a little more typing yesterday at home and yea, something is up with me it seems. I get them on the razer but again not that many. 2-3 in a day maybe.
So I would it seems to be on par with TMK on the frosty flake. some here and there. But Easy AVR seems to trigger it way more often.
Any suggests on matrix/debounce that may help?
I'm also wondering if a heavier switch would help. I've been wanting to try clears for a bit now.
EasyAVR is meant for enthusiasts. Therefore, I made it as "quick" as possible. It runs at 1000Hz and the debounce logic is running loose and fast.
I think two things need to happen. First, you may have to bump up your debounce number to something larger.
Second, I have to check my algorithm to make sure my efforts to speed it up didn't compromise its integrity. That will be a good project for this weekend.
-
Sir!
Here are the matrix positions of the GH-122.2016 (https://geekhack.org/index.php?topic=80326). In addition to the main matrix (Row 0-6 and Column 0-23) there are three LED circuits and two PWM backlighting circuits. I have not wired up the backlighting, but people might, so could you please enable them in software?
Here is the matrix, including a translation between my designations of A1 through G24 to your 0,0 through 6,23:
Matrix Position |
Pin | Connection | Matrix |
F7 | 1 | Column 0 |
F6 | 2 | Column 1 |
F5 | 3 | Column 2 |
F4 | 4 | Column 3 |
F3 | 5 | Column 4 |
F2 | 6 | Column 5 |
C7 | 7 | Column 6 |
F0 | 8 | Column 7 |
F1 | 9 | Column 8 |
E1 | 10 | Column 9 |
C0 | 11 | Column 10 |
C1 | 12 | Column 11 |
C2 | 13 | Column 12 |
C3 | 14 | Column 13 |
C4 | 15 | Column 14 |
C5 | 16 | Column 15 |
C6 | 17 | Column 16 |
E7 | 18 | Column 17 |
D7 | 19 | Column 18 |
E6 | 20 | Column 19 |
E0 | 21 | Column 20 |
D6 | 22 | Column 21 |
B0 | 23 | Column 22 |
D5 | 24 | Column 23 |
B6 | A | Row 0 |
B5 | B | Row 1 |
B1 | C | Row 2 |
D4 | D | Row 3 |
D3 | E | Row 4 |
D2 | F | Row 5 |
D1 | G | Row 6 |
B3 | CAPS | |
B4 | NUM | |
B2 | SCRL | |
B7 | PWM 1 | |
D0 | PWM 2 | |
Attached is a detail shot of the controller and a couple of switches so you can see the matrix and the diodes for yourself. I'll also e-mail you a spreadsheet with all of this information sorted various ways.
Thanks for adding this little guy to your expanding roster! Please let me know if you need anything else. (ANSI and ISO layouts, for example.)
- Ron | samwisekoi
-
Sir!
Here are the matrix positions of the GH-122.2016 (https://geekhack.org/index.php?topic=80326). In addition to the main matrix (Row 0-6 and Column 0-23) there are three LED circuits and two PWM backlighting circuits. I have not wired up the backlighting, but people might, so could you please enable them in software?
Here is the matrix, including a translation between my designations of A1 through G24 to your 0,0 through 6,23:
<table bgcolor=white border=1px>
<tr><th colspan=3>Matrix Position</th></tr>
<tr><th width=60px>Pin</th><th width=60px>Connection</th><th width=80px>Matrix</th></tr>
<tr><td>F7</td><td>1</td><td>Column 0</td></tr>
<tr><td>F6</td><td>2</td><td>Column 1</td></tr>
<tr><td>F5</td><td>3</td><td>Column 2</td></tr>
<tr><td>F4</td><td>4</td><td>Column 3</td></tr>
<tr><td>F3</td><td>5</td><td>Column 4</td></tr>
<tr><td>F2</td><td>6</td><td>Column 5</td></tr>
<tr><td>C7</td><td>7</td><td>Column 6</td></tr>
<tr><td>F0</td><td>8</td><td>Column 7</td></tr>
<tr><td>F1</td><td>9</td><td>Column 8</td></tr>
<tr><td>E1</td><td>10</td><td>Column 9</td></tr>
<tr><td>C0</td><td>11</td><td>Column 10</td></tr>
<tr><td>C1</td><td>12</td><td>Column 11</td></tr>
<tr><td>C2</td><td>13</td><td>Column 12</td></tr>
<tr><td>C3</td><td>14</td><td>Column 13</td></tr>
<tr><td>C4</td><td>15</td><td>Column 14</td></tr>
<tr><td>C5</td><td>16</td><td>Column 15</td></tr>
<tr><td>C6</td><td>17</td><td>Column 16</td></tr>
<tr><td>E7</td><td>18</td><td>Column 17</td></tr>
<tr><td>D7</td><td>19</td><td>Column 18</td></tr>
<tr><td>E6</td><td>20</td><td>Column 19</td></tr>
<tr><td>E0</td><td>21</td><td>Column 20</td></tr>
<tr><td>D6</td><td>22</td><td>Column 21</td></tr>
<tr><td>B0</td><td>23</td><td>Column 22</td></tr>
<tr><td>D5</td><td>24</td><td>Column 23</td></tr>
<tr><td>B6</td><td>A</td><td>Row 0</td></tr>
<tr><td>B5</td><td>B</td><td>Row 1</td></tr>
<tr><td>B1</td><td>C</td><td>Row 2</td></tr>
<tr><td>D4</td><td>D</td><td>Row 3</td></tr>
<tr><td>D3</td><td>E</td><td>Row 4</td></tr>
<tr><td>D2</td><td>F</td><td>Row 5</td></tr>
<tr><td>D1</td><td>G</td><td>Row 6</td></tr>
<tr><td>B3</td><td>CAPS</td><td></td></tr>
<tr><td>B4</td><td>NUM</td><td></td></tr>
<tr><td>B2</td><td>SCRL</td><td></td></tr>
<tr><td>B7</td><td>PWM 1</td><td></td></tr>
<tr><td>D0</td><td>PWM 2</td><td></td></tr>
</table>
Attached is a detail shot of the controller and a couple of switches so you can see the matrix and the diodes for yourself. I'll also e-mail you a spreadsheet with all of this information sorted various ways.
Thanks for adding this little guy to your expanding roster! Please let me know if you need anything else. (ANSI and ISO layouts, for example.)
- Ron | samwisekoi
How soon do you need this, I could give it a try to better understand my way around EasyAVR.
-
I started last week (https://geekhack.org/index.php?topic=80326.msg2097223#msg2097223) so I'm mostly done already.
This board has so many layout options I'll never be able pre-program them all, but I'll make some example layout options and users can customize to their liking.
-
I started last week (https://geekhack.org/index.php?topic=80326.msg2097223#msg2097223) so I'm mostly done already.
This board has so many layout options I'll never be able pre-program them all, but I'll make some example layout options and users can customize to their liking.
Thanks very much!
Those layout options are why I am SO looking forward to designing multi-purpose plates.
Anyhow, thanks!
- Ron | samwisekoi
-
I committed GH-122 support just now. The next release will have it. When the boards show up there will probably have to be some tweaks, but don't sweat it. Shouldn't be difficult.
-
I committed GH-122 support just now. The next release will have it. When the boards show up there will probably have to be some tweaks, but don't sweat it. Shouldn't be difficult.
Awesome! Thanks very much!
I see the Python on Github, but no current executable on the wiki. Am I missing something?
Thanks again,
- Ron | samwisekoi
[edit] Ah, I see: "The next release will have it." Ok. I won't start my layout this morning. [/edit]
-
I committed GH-122 support just now. The next release will have it. When the boards show up there will probably have to be some tweaks, but don't sweat it. Shouldn't be difficult.
Awesome! Thanks very much!
I see the Python on Github, but no current executable on the wiki. Am I missing something?
Thanks again,
- Ron | samwisekoi
[edit] Ah, I see: "The next release will have it." Ok. I won't start my layout this morning. [/edit]
Okay I posted 2.1.7 to the wiki (https://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware#Downloads)
-
I played around with the customizing the firmware to work properly on the Mac. Previous and Next Track keycodes worked with iTunes just fine, but not anything else like Spotify. What I found is that the Rewind (0xB4) and Fast Foward (0xB3) keycodes should be sent instead. Just as a quick dirty hack I modified SC_WIN_CP_NEXT_TRACK and SC_WIN_CP_PREV_TRACK to these values, and they work correctly. Spotify seems happy, iTunes still works as well.
Scroll Lock and Pause will decrease and increase monitor brightness respectively for anyone interested and wasn't aware. The Mac will take those keys and make them F14 and F15, and Print Screen should be F13. F14 and F15 are the default Brightness controls set by the OS. I was trying to assign additional function keys but the Mac will not pick up any of the function keys higher than F12, I'm still looking into that.
I'm using a QFR with a Frosty Flake v2, love it with no real issues to complain about. The firmware works great otherwise.
I have never owned a Mac, so I know that my Mac support is weak. All the media keys were added using Microsoft's guidance. Thanks for this input. Perhaps Mac support can be added.
Actually for the most part everything works. Just had to swap those keys around for Media playback to function properly. I haven't had an issue with anything else but the function keys. If I figure out anything on that I'll let you know. I'm using it full time on an iMac with 3 layers and nothing bad to say. I had more trouble installing the Atmel Studio as I selected the wrong chip support the first go round.
Did you ever figure out how to get the mission control / expose (f3) to work?
-
mission control / expose (f3)
I don't know what this means.
-
mission control / expose (f3)
I don't know what this means.
This key:
[attachimg=1]
-
@kagey; You can set your f4 key for expose in the system preferences/mission control/pane, or any other f key you want for it.
-
@kagey; You can set your f4 key for expose in the system preferences/mission control/pane, or any other f key you want for it.
Yeah, that's what I've done for the time being, but I'd like to assign that expose keycode to a different key if it's possible in firmware.
-
@kagey; You can set your f4 key for expose in the system preferences/mission control/pane, or any other f key you want for it.
Yeah, that's what I've done for the time being, but I'd like to assign that expose keycode to a different key if it's possible in firmware.
I don't think that is possible, its a Mac OS thing not a standard USB keyboard key scancode. Once you set it in the system preferences whatever keyboard you use will respond with that same key choice.
-
Anyone try it with the satan gh60 yet?
-
Anyone try it with the satan gh60 yet?
Nope, I used TMK for mine.
-
How do we request a keyboard to be added. Interested in using this on the Bantamm.
-
You can check the GitHub repo for how to add a custom keyboard, it is quite easy to be honest.
-
Is it possible to program a key to BackspaceFn so that it works as backspace when pressed and released but works as a function key when pressed and held down in combination with another key (like a modifier).
I've tried programming the primary function as Fn and the Tap key as Backspace but I don't actually have the switches in my PCB to check if it works.
-
Is it possible to program a key to BackspaceFn so that it works as backspace when pressed and released but works as a function key when pressed and held down in combination with another key (like a modifier).
I've tried programming the primary function as Fn and the Tap key as Backspace but I don't actually have the switches in my PCB to check if it works.
You've got it right but it won't work until I release the next version. There is a known bug in the code that would prevent tapkeys from working. Releasing it now...
-
Okay, 2.1.9 has been posted to the wiki. I strongly urge everyone to upgrade. There was a pretty big bug in the keymapper that broke most advanced key assignments.
-
Is it possible to program a key to BackspaceFn so that it works as backspace when pressed and released but works as a function key when pressed and held down in combination with another key (like a modifier).
I've tried programming the primary function as Fn and the Tap key as Backspace but I don't actually have the switches in my PCB to check if it works.
You've got it right but it won't work until I release the next version. There is a known bug in the code that would prevent tapkeys from working. Releasing it now...
Confirmed. Just tested on my Phantom. Set the key as FN key and Backspace for tap function.
-
is rgb support in handqired boards a thing?
-
is rgb support in handqired boards a thing?
I know of several users who are working to add RGB support for their own projects. Hopefully they will do it well enough that their work can be integrated into the main project. I don't own one myself.
-
And user dchae is on fire, with two bugs found in two days.
Version 2.1.10 is released! This one fixes tapkeys getting unwelcome modification from their mother keys.
-
Good to see that you're passionate about your software :thumb:
Quick question: What does the boot function do? I'm assuming it boots the keyboard with the flashed layout but how would it recognise that boot has been pressed if the keyboard hasn't been booted yet!
-
The Boot key, puts the keyboard in boot mode to flash a new firmware. This is useful if you don't have easy access to the boot mode key (usually a small push button on the underside of the PCB)
-
Boot is short for bootloader.
-
Hi all,
Slightly confused individual here. I have some questions for clarification; :)
I have my first custom inbound, being a GH 60 Satan. It's going to have LED's for each key installed. I have EasyAVR running in mint and windows.
1.
Is back lighting setup to work with the default config? I.e., if I assign the BL_ENABLE, BL_DIMMER and BL_MODE to keys - my led's will dim etc? (It looks like the back light boolean is set to false in the config)
2.
In the advanced LED setup, I notice that I can only configure a single indicator - being the caps lock. I assume this means I'd have to modify the board configuration to define other LED's capable of toggling on and off.. (i.e., I'd like to have the LED associated with my Fn key toggle based on if the layer is active). I've taken a look at the configuration, and it appears I may need to assign specific pin's to each LED. Is this possible with my PCB?
3.
Are there some docs describing what each Mode: drop-down is for in the key mapper?
If I'm on the right track then I might attempt to get all of this working and fire off a PR.
Cheers!
-
Hi all,
Slightly confused individual here. I have some questions for clarification; :)
I have my first custom inbound, being a GH 60 Satan. It's going to have LED's for each key installed. I have EasyAVR running in mint and windows.
1.
Is back lighting setup to work with the default config? I.e., if I assign the BL_ENABLE, BL_DIMMER and BL_MODE to keys - my led's will dim etc? (It looks like the back light boolean is set to false in the config)
The Satan support currently doesn't support backlights. Honestly I didn't know the Satan had backlights. I don't own one. Support is trivial to add, but I need someone to give me the details of the hardware. What pins control the backlights?
2.
In the advanced LED setup, I notice that I can only configure a single indicator - being the caps lock. I assume this means I'd have to modify the board configuration to define other LED's capable of toggling on and off.. (i.e., I'd like to have the LED associated with my Fn key toggle based on if the layer is active). I've taken a look at the configuration, and it appears I may need to assign specific pin's to each LED. Is this possible with my PCB?
Again, I don't know the specific details of the hardware, but if it's anything like the GH60, the Caps Lock is the only indicator.
3.
Are there some docs describing what each Mode: drop-down is for in the key mapper?
If I'm on the right track then I might attempt to get all of this working and fire off a PR.
Cheers!
there are docs. Use the Help menu. It is your friend.
-
Metalliqaz - according to this TMK branch (https://github.com/kairyu/tmk_keyboard_custom/blob/master/keyboard/gh60/) the backlight on the GH60revCHN is PWM on PB6 and the Caps Lock indicator is on PB2 :thumb:
-
Metalliqaz - according to this TMK branch (https://github.com/kairyu/tmk_keyboard_custom/blob/master/keyboard/gh60/) the backlight on the GH60revCHN is PWM on PB6 and the Caps Lock indicator is on PB2 :thumb:
Okay great. That will take about 30 seconds to implement.
-
Hi all,
Slightly confused individual here. I have some questions for clarification; :)
I have my first custom inbound, being a GH 60 Satan. It's going to have LED's for each key installed. I have EasyAVR running in mint and windows.
1.
Is back lighting setup to work with the default config? I.e., if I assign the BL_ENABLE, BL_DIMMER and BL_MODE to keys - my led's will dim etc? (It looks like the back light boolean is set to false in the config)
2.
In the advanced LED setup, I notice that I can only configure a single indicator - being the caps lock. I assume this means I'd have to modify the board configuration to define other LED's capable of toggling on and off.. (i.e., I'd like to have the LED associated with my Fn key toggle based on if the layer is active). I've taken a look at the configuration, and it appears I may need to assign specific pin's to each LED. Is this possible with my PCB?
3.
Are there some docs describing what each Mode: drop-down is for in the key mapper?
If I'm on the right track then I might attempt to get all of this working and fire off a PR.
Cheers!
Posted ver 2.1.11 with backlight support added to the GH60 Satan. Unfortunately this is a hardware change so old saved layouts won't work :(
Thanks to suicidal_orange
-
Fantastic! Thank you!
-
Building GH-122.2016 firmware with v 2.01.08 to push onto a Teensy++ and this happened.
It seems ungood.
- Ron | samwisekoi
-
Building GH-122.2016 firmware with v 2.01.08 to push onto a Teensy++ and this happened.
It seems ungood.
- Ron | samwisekoi
It's one of your macros. Sequences longer than 1 char have to end with a comma. \ENTER, and so on
-
Yup. Thanks. It was this one:
\CTRL(\SHIFT(u))2588\SPACE,
That compiles now, anyhow. (It is the Linux way of typing special characters using Unicode values instead of ASCII.)
Thanks for your help!
- Ron | samwisekoi
-
Good to hear it
I really wish I hadn't been a lazy bastard when I wrote the macro stuff. The macro language makes parsing easy but is so un-intuitive. Oh well, too late to change it now.
What I should do, however, is make the error messages for macro syntax errors more helpful.
-
Good to hear it
I really wish I hadn't been a lazy bastard when I wrote the macro stuff. The macro language makes parsing easy but is so un-intuitive. Oh well, too late to change it now.
What I should do, however, is make the error messages for macro syntax errors more helpful.
Especially if you are going to Soarer out on us!
Anyhow, Good News, Everyone! I have a Teensy++ programmed with firmware that functions on at least two random-ish simulated keypresses. (Placing a diode between pins F4 and B1 sends a "1" out via the USB cable!) Now I just need a giant PCB and a couple of hours of soldering time...
Thanks again, sir!
- Ron | samwisekoi <-- soon to be typed via Fn+F1
-
I haven't seen any mention of the Sentraq (recently shipped from MD) 60% ...
I've just finished following the directions for writing a "hand wired" board and the EasyKeyMap program doesn't immediately die (turns out "teensy = false" is wrong; it's "teensy = False" ) so I'm thinking maybe I'm on to something.
my config file is here (https://www.dropbox.com/s/h79jy8j3hrh1r18/Sentraq.py?dl=0) but be warned it's WKL / Dvorak and I'm not totally sure I read the TMK file correctly to set the LED.
I haven't soldered mine together yet so I can't test this but maybe someone else following, has this keyboard ...? I can post the notes in the TMK file explaining about ISO / split backspace (and the extra key for 1.25/6.25 layout) if anybody's curious.
-
I haven't seen any mention of the Sentraq (recently shipped from MD) 60% ...
I've just finished following the directions for writing a "hand wired" board and the EasyKeyMap program doesn't immediately die (turns out "teensy = false" is wrong; it's "teensy = False" ) so I'm thinking maybe I'm on to something.
my config file is here (https://www.dropbox.com/s/h79jy8j3hrh1r18/Sentraq.py?dl=0) but be warned it's WKL / Dvorak and I'm not totally sure I read the TMK file correctly to set the LED.
I haven't soldered mine together yet so I can't test this but maybe someone else following, has this keyboard ...? I can post the notes in the TMK file explaining about ISO / split backspace (and the extra key for 1.25/6.25 layout) if anybody's curious.
Never heard of it. Just point me towards the TMK I can make sure your file works.
-
Never heard of it. Just point me towards the TMK I can make sure your file works.
It's in here.
https://github.com/VinnyCordeiro/tmk_keyboard/tree/master/keyboard/s60-x
Thanks for looking over my handiwork.
-
Just wondering, is possible to make the Monarch LHTK keyboard compatible with EasyAVR? Thanks! :)
-
Just wondering, is possible to make the Monarch LHTK keyboard compatible with EasyAVR? Thanks! :)
ATMega? check. Documentation? check (https://github.com/skullydazed/tmk_keyboard/blob/master/keyboard/monarch/matrix.c).
Yup, no problem here. I'll have a go if metalliqaz doesn't get there first :))
-
ATMega? check. Documentation? check (https://github.com/skullydazed/tmk_keyboard/blob/master/keyboard/monarch/matrix.c).
Yup, no problem here. I'll have a go if metalliqaz doesn't get there first :))
Please do! If you (or metalliqaz) can get it working, that would be absolutely amazing :-*
-
Just wondering, is possible to make the Monarch LHTK keyboard compatible with EasyAVR? Thanks! :)
ATMega? check. Documentation? check (https://github.com/skullydazed/tmk_keyboard/blob/master/keyboard/monarch/matrix.c).
Yup, no problem here. I'll have a go if metalliqaz doesn't get there first :))
I'd appreciate it. My Sigma project is taking up most of my time these days. If you work it out send a pull request and we'll get it into the releases.
-
Ok, I am sure there needs to be a comma or two in here:
/CTRL(CV)
My desire is to have ^c ^v be output (COPY then PASTE).
But so far I get the text of the macro as shown above.
Thanks in advance!
- Ron | samwisekoi
(Auto-typed by my GH36 Matrix Keypad.)
-
You used forward slash instead of backslash
-
I've gone for this layout from the Monarch thread, strange as the numberpad is
(http://i.imgur.com/SJWvcSb.jpg)
(http://i.imgur.com/J03HBvq.png)
Apart from the little "key" (not usable) over the number pad enter it looks right, but does it work? I hope so...
The hex is attached, please test it :)
edit: I have + and - switched on the numberpad, that will be corrected.
edit2 I also have an up arrow in the numberpad, that will be corrected too :-[
-
I've gone for this layout from the Monarch thread, strange as the numberpad is
Show Image
(http://i.imgur.com/SJWvcSb.jpg)
Show Image
(http://i.imgur.com/J03HBvq.png)
Apart from the little "key" (not usable) over the number pad enter it looks right, but does it work? I hope so...
The hex is attached, please test it :)
edit: I have + and - switched on the numberpad, that will be corrected.
Nice! To fix that enter key you should need a spacer of width -4, like this: (-4, None, '0')
Do you have a github account? If so send a pull request. Don't forget to give yourself attribution in the new file. Otherwise I can add it to master whenever.
-
I've gone for this layout from the Monarch thread, strange as the numberpad is
Show Image
(http://i.imgur.com/SJWvcSb.jpg)
Show Image
(http://i.imgur.com/J03HBvq.png)
Apart from the little "key" (not usable) over the number pad enter it looks right, but does it work? I hope so...
The hex is attached, please test it :)
edit: I have + and - switched on the numberpad, that will be corrected.
Nice! To fix that enter key you should need a spacer of width -4, like this: (-4, None, '0')
Do you have a github account? If so send a pull request. Don't forget to give yourself attribution in the new file. Otherwise I can add it to master whenever.
Thanks - layout fixed. Looks much better without a floating part-key :))
I don't have github, might be worth setting one up though if I can get confident with doing these (not sure on the diode and LED settings when converting TMK config) but not doing anything with this one until I know it works, does the attribution in the copyright at the top or ?? Would never have thought to add one!
-
I've gone for this layout from the Monarch thread, strange as the numberpad is
Show Image
(http://i.imgur.com/SJWvcSb.jpg)
Show Image
(http://i.imgur.com/J03HBvq.png)
Apart from the little "key" (not usable) over the number pad enter it looks right, but does it work? I hope so...
The hex is attached, please test it :)
edit: I have + and - switched on the numberpad, that will be corrected.
Nice! To fix that enter key you should need a spacer of width -4, like this: (-4, None, '0')
Do you have a github account? If so send a pull request. Don't forget to give yourself attribution in the new file. Otherwise I can add it to master whenever.
Thanks - layout fixed. Looks much better without a floating part-key :))
I don't have github, might be worth setting one up though if I can get confident with doing these (not sure on the diode and LED settings when converting TMK config) but not doing anything with this one until I know it works, does the attribution in the copyright at the top or ?? Would never have thought to add one!
Yeah it's at the top with the copyright line. You'd just add another line under mine with 2016 and your name, if you choose to use it. By the terms of the GPL, the license has to stay.
-
First off ...metalliqaz, this software is amazing and thank you giving this to the community
second , Im wondering if there is a char limit on macros for the m1-14 position.
What i am trying to do is make a on button press to open new tab ( in chrome ),type URL , wait 1 sec, type username, tab, type pw , click enter.
If this is not possible I can understand as I know this is a security issue if the keyboard fell into the hands of evil.
willing to listen to any help I can get or if someone can point me to any documentation .
-
First off ...metalliqaz, this software is amazing and thank you giving this to the community
second , Im wondering if there is a char limit on macros for the m1-14 position.
What i am trying to do is make a on button press to open new tab ( in chrome ),type URL , wait 1 sec, type username, tab, type pw , click enter.
If this is not possible I can understand as I know this is a security issue if the keyboard fell into the hands of evil.
willing to listen to any help I can get or if someone can point me to any documentation .
There are help files in the 'manuals' folder, but here's (https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/manuals/macros.txt) an online copy :)
-
First off ...metalliqaz, this software is amazing and thank you giving this to the community
second , Im wondering if there is a char limit on macros for the m1-14 position.
What i am trying to do is make a on button press to open new tab ( in chrome ),type URL , wait 1 sec, type username, tab, type pw , click enter.
If this is not possible I can understand as I know this is a security issue if the keyboard fell into the hands of evil.
willing to listen to any help I can get or if someone can point me to any documentation .
There are help files in the 'manuals' folder, but here's (https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/manuals/macros.txt) an online copy :)
This is exactly what I needed. I couldn't find a local copy of this but going to copy this to a txt now
Thank you
-
It's under Help.
-
I've gone for this layout from the Monarch thread, strange as the numberpad is
Show Image
(http://i.imgur.com/SJWvcSb.jpg)
Show Image
(http://i.imgur.com/J03HBvq.png)
Apart from the little "key" (not usable) over the number pad enter it looks right, but does it work? I hope so...
The hex is attached, please test it :)
edit: I have + and - switched on the numberpad, that will be corrected.
edit2 I also have an up arrow in the numberpad, that will be corrected too :-[
Wow nice! How would I be able to get the Monarch layout going on the program?
-
I've gone for this layout from the Monarch thread, strange as the numberpad is
Show Image
(http://i.imgur.com/SJWvcSb.jpg)
Show Image
(http://i.imgur.com/J03HBvq.png)
Apart from the little "key" (not usable) over the number pad enter it looks right, but does it work? I hope so...
The hex is attached, please test it :)
edit: I have + and - switched on the numberpad, that will be corrected.
edit2 I also have an up arrow in the numberpad, that will be corrected too :-[
Wow nice! How would I be able to get the Monarch layout going on the program?
Does that mean all the keys and both LEDs work in the test hex? If so I'll post the config so you can add it to your boards directory and make your own :)
-
All5 the 5LEDs 5work 5but5 as 5you 5can 5tell5 there's 5a 5few 5small5 glitches5 (typed5 on 5the5 Monarch) 5:P
Namely:
The spacekey is spazzing out with typing a five every time
There seems to be no backspace , it seems to be mapped to home?
Pressing the function key (right command key) and anything has had strange effects (it's toggled things from windows magnifier to just typing random stuff out.)
edit:
More bugs!
Numpad timing for the keys seems off, pressing the key causes it to type out many of the character
\ key does work and types out a string of 44444444444
That's all for now, if anything else weird pops up, I'll update this post.
-
that's hilarious
We should be able to fix it up. suicidal_orange is probably asleep, though.
-
Not asleep but not sober so probably not much use... Will boot my computer up and see if there's anything obvious, but as there's no 'home' key on there I doubt it. Unless virtual numpad with num lock off maybe?
edit:
Backspace looks fine
5% is on column 9 along with space - possible diode issue?
-
Everything looks fine (except right shift shouldn't have worked - now fixed) so I'm reluctantly going to post the broken config. Would be great if someone could explain what I did wrong, I don't see how some of the reported bugs are even possible!
-
Everything looks fine (except right shift shouldn't have worked - now fixed) so I'm reluctantly going to post the broken config. Would be great if someone could explain what I did wrong, I don't see how some of the reported bugs are even possible!
You used the ATmega32U4_16MHz_TKL firmware, which is not large enough to hold the monarch matrix. I cleaned it up and used the biggest firmware. It's in the repository...
https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/boards/monarch.py
-
Hi everyone.
I posted this in my own thread but I will ask here as well if that is okay.
I have a hand wired board that only outputs for the letter E
nothing else registers
(http://i.imgur.com/Gkul6xo.jpg)
(http://i.imgur.com/WhujD6d.jpg)
sorry about the quality.
all diodes are facing the same way, black stripe down.
Did I just do a mess of a job wiring it? or do you think its the AVR?
-
Everything looks fine (except right shift shouldn't have worked - now fixed) so I'm reluctantly going to post the broken config. Would be great if someone could explain what I did wrong, I don't see how some of the reported bugs are even possible!
You used the ATmega32U4_16MHz_TKL firmware, which is not large enough to hold the monarch matrix. I cleaned it up and used the biggest firmware. It's in the repository...
https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/boards/monarch.py
Thanks, I would never have thought of that! I can go to bed happy I didn't mess up something stupid now :)
-
Hi everyone.
I posted this in my own thread but I will ask here as well if that is okay.
I have a hand wired board that only outputs for the letter E
nothing else registers
Show Image
(http://i.imgur.com/Gkul6xo.jpg)
Show Image
(http://i.imgur.com/WhujD6d.jpg)
sorry about the quality.
all diodes are facing the same way, black stripe down.
Did I just do a mess of a job wiring it? or do you think its the AVR?
This is EasyAVR? Can you post your config? Does every key output E, or just the E key?
-
Hi everyone.
I posted this in my own thread but I will ask here as well if that is okay.
I have a hand wired board that only outputs for the letter E
nothing else registers
Show Image
(http://i.imgur.com/Gkul6xo.jpg)
Show Image
(http://i.imgur.com/WhujD6d.jpg)
sorry about the quality.
all diodes are facing the same way, black stripe down.
Did I just do a mess of a job wiring it? or do you think its the AVR?
This is EasyAVR? Can you post your config? Does every key output E, or just the E key?
This is easy avr, Yes
https://www.dropbox.com/s/ip218l00w00iq7j/moistgun61.py?dl=0
This is the .py
I want to point out that MOZ gave me the initial py file, but I edited it. The sizing of the caps were wrong since this is an AEK layout, as well as some of the scancodes being on the wrong column. like space was supposed to be column 7 not 5.
https://www.dropbox.com/s/q4w3ea3gaui7s2f/ATmega32U4_16MHz_mt.hex?dl=0
This is the hex
only the e key outputs e everything else is dead
-
Hi everyone.
I posted this in my own thread but I will ask here as well if that is okay.
I have a hand wired board that only outputs for the letter E
nothing else registers
Show Image
(http://i.imgur.com/Gkul6xo.jpg)
Show Image
(http://i.imgur.com/WhujD6d.jpg)
sorry about the quality.
all diodes are facing the same way, black stripe down.
Did I just do a mess of a job wiring it? or do you think its the AVR?
This is EasyAVR? Can you post your config? Does every key output E, or just the E key?
This is easy avr, Yes
https://www.dropbox.com/s/ip218l00w00iq7j/moistgun61.py?dl=0
This is the .py
I want to point out that MOZ gave me the initial py file, but I edited it. The sizing of the caps were wrong since this is an AEK layout, as well as some of the scancodes being on the wrong column. like space was supposed to be column 7 not 5.
https://www.dropbox.com/s/q4w3ea3gaui7s2f/ATmega32U4_16MHz_mt.hex?dl=0
This is the hex
only the e key outputs e everything else is dead
Well it's kind of hard to say. If the E key works as intended, then you've got the basics correct. If I were you, I'd start using a multimeter to check for continuity on the matrix.
-
Okay can confirm the Monarch mapper is working as intended. Just a minor thing but the Monarch only has 3 modifier keys to the right of the space bar while the GUI is displaying 4. Basically the one closest to the spacebar doesn't exist and doesn't seem to do anything.
With toggleable caps lock, it doesn't seem to work with the Alps locking switch, any ideas as to why?
Otherwise an excellent tool! Thank you so much! :)
-
Okay can confirm the Monarch mapper is working as intended. Just a minor thing but the Monarch only has 3 modifier keys to the right of the space bar while the GUI is displaying 4. Basically the one closest to the spacebar doesn't exist and doesn't seem to do anything.
With toggleable caps lock, it doesn't seem to work with the Alps locking switch, any ideas as to why?
Otherwise an excellent tool! Thank you so much! :)
Dammit, there's an LED on the mock up (on tho wrong side no less) which I kept seeing as a key :))
As to the lock switch did you pick the scancode or change the key mode at the top? You should choose the scancode, but it may not have been tested since the rewrite. The mode is to emulate a lock switch :)
-
DERP. I didn't realise there is a dedicated scancode for locking switches! I used that lockable option in the mode selection. It works perfectly now :D Thank you very much!
-
Nice!
-
Metalliqaz - Moistgun's problem was the diode direction so fixed by changing strobe_cols to False, but reading the notes in the config file MOZ, Moistgun and myself all thought it should be left as True. Is this option backwards or is the wording just confusing?
Most boards are built this way so it would make a better default, but if it is backwards perhaps it's already supposed to be and it's something else that needs changing? :confused:
-
Metalliqaz - Moistgun's problem was the diode direction so fixed by changing strobe_cols to False, but reading the notes in the config file MOZ, Moistgun and myself all thought it should be left as True. Is this option backwards or is the wording just confusing?
Most boards are built this way so it would make a better default, but if it is backwards perhaps it's already supposed to be and it's something else that needs changing? :confused:
I confuse myself sometimes. Trying to boil it all down to a few simple sentences is obviously a challenge.
Okay so let's talk this out. His diodes are clearly installed to allow current to flow from column to row. Since it's a handwire board it has to use the AVR's internal pullup resistors, therefore strobe_low must be True.
So let's say strobe_col is True... then all columns will be set to 5v and the selected column will be set to 0v. Every unselected column will be read as high on the rows because the diodes are col->row, while the selected column will have no voltage differential so will read as high thanks to the pullup. Yep, that doesn't work.
If strobe_col is False... then all rows will be set to 5v and the selected row will be set to 0v. Every unselected row will be read as high on the columns because there is no voltage differential so the pullups take over. The selected row will pull current through the diode and will be read as low. That works.
Alright, so my logic was totally friggin backwards. Ugh, this is so embarrassing. The one line I needed to get right. *sigh* I'll change the text in the repository.
-
Released 2.1.12 on the wiki (https://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware#Downloads) with fixed handwire instructions and support for two new boards.
-
Metalliqaz - Moistgun's problem was the diode direction so fixed by changing strobe_cols to False, but reading the notes in the config file MOZ, Moistgun and myself all thought it should be left as True. Is this option backwards or is the wording just confusing?
Most boards are built this way so it would make a better default, but if it is backwards perhaps it's already supposed to be and it's something else that needs changing? :confused:
I confuse myself sometimes. Trying to boil it all down to a few simple sentences is obviously a challenge.
Okay so let's talk this out. His diodes are clearly installed to allow current to flow from column to row. Since it's a handwire board it has to use the AVR's internal pullup resistors, therefore strobe_low must be True.
So let's say strobe_col is True... then all columns will be set to 5v and the selected column will be set to 0v. Every unselected column will be read as high on the rows because the diodes are col->row, while the selected column will have no voltage differential so will read as high thanks to the pullup. Yep, that doesn't work.
If strobe_col is False... then all rows will be set to 5v and the selected row will be set to 0v. Every unselected row will be read as high on the columns because there is no voltage differential so the pullups take over. The selected row will pull current through the diode and will be read as low. That works.
Alright, so my logic was totally friggin backwards. Ugh, this is so embarrassing. The one line I needed to get right. *sigh* I'll change the text in the repository.
Thanks for the explanation, it was an easy fix and compared to all the good stuff a couple of wrong words pales into insignificance. Good excuse to get the new boards released too :)
I've been considering this a beta since the rewrite but pretty sure everything has been tested now, at least enough that I feel it's time to attempt my hijacked Ducky (Teensy 2.0++, big crazy matrix...) and be confident that any problems are of my own making :-X
-
Is there any documentation as to how the three AT90USB1286 builds differ? I've tried my layout (18x8 matrix, config below if it's helpful) on an empty Teensy 2.0++ using the Fullsize 16mhz and Jumbo and don't get any output using a wire between pins. I'm sure someone said they got a key to output...
# Easy AVR USB Keyboard Firmware Keymapper
# Copyright (C) 2013-2016 David Howland
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
import easykeymap.templates.AT90USB1286_16MHz_FULLSIZE as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config
description = "Ducky Zero"
unique_id = "DUCKY_001"
cfg_name = "Ducky 108"
teensy = True
hw_boot_key = False
display_height = int(6.5*4)
display_width = int(22.5*4)
num_rows = 8
num_cols = 18
strobe_cols = True
strobe_low = True
matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
strobe_cols=strobe_cols,
strobe_low=strobe_low,
rows=[D2, D1, D4, B0, D0, C5, B7, F0],
cols=[F7, F4, B2, B3, B4, B5, E6, B6, F2, F3, F5, D5, D6, C7, C6, E0, F6, E1],
device=firmware.device
)
num_leds = 2
num_ind = 2
num_bl_enab = 2
led_definition = [
('Caps Key', 'Caps Lock'),
('Num Key', 'Num Lock')
]
led_hardware = [
( REF_PORTD, 6, LED_DRIVER_PULLUP ),
( REF_PORTF, 1, LED_DRIVER_PULLUP )
]
backlighting = False
bl_modes = [
( 0, 0 ),
( 1, 1 )
]
KMAC_key = None
keyboard_definition = [
[((4, 4), (3, 2), 'HID_KEYBOARD_SC_ESCAPE'),
(4, None, '0'),
((4, 4), (1, 3), 'HID_KEYBOARD_SC_F1'),
((4, 4), (1, 4), 'HID_KEYBOARD_SC_F2'),
((4, 4), (6, 4), 'HID_KEYBOARD_SC_F3'),
((4, 4), (4, 4), 'HID_KEYBOARD_SC_F4'),
(2, None, '0'),
((4, 4), (0, 10), 'HID_KEYBOARD_SC_F5'),
((4, 4), (4, 8), 'HID_KEYBOARD_SC_F6'),
((4, 4), (6, 8), 'HID_KEYBOARD_SC_F7'),
((4, 4), (1, 8), 'HID_KEYBOARD_SC_F8'),
(2, None, '0'),
((4, 4), (1, 12), 'HID_KEYBOARD_SC_F9'),
((4, 4), (0, 12), 'HID_KEYBOARD_SC_F10'),
((4, 4), (4, 12), 'HID_KEYBOARD_SC_F11'),
((4, 4), (0, 14), 'HID_KEYBOARD_SC_F12'),
(1, None, '0'),
((4, 4), (0, 11), 'HID_KEYBOARD_SC_PRINT_SCREEN'),
((4, 4), (7, 11), 'HID_KEYBOARD_SC_SCROLL_LOCK'),
((4, 4), (7, 10), 'HID_KEYBOARD_SC_PAUSE'),
(1, None, '0'),
((4, 4), (1, 12), 'SCANCODE_MUTE'),
((4, 4), (0, 12), 'SCANCODE_VOL_DEC'),
((4, 4), (4, 12), 'SCANCODE_VOL_DEC'),
((4, 4), (2, 12), 'SCANCODE_CALC')],
2,
[((4, 4), (1, 2), 'HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE'),
((4, 4), (0, 2), 'HID_KEYBOARD_SC_1_AND_EXCLAMATION'),
((4, 4), (0, 3), 'HID_KEYBOARD_SC_2_AND_AT'),
((4, 4), (0, 4), 'HID_KEYBOARD_SC_3_AND_HASHMARK'),
((4, 4), (0, 5), 'HID_KEYBOARD_SC_4_AND_DOLLAR'),
((4, 4), (1, 5), 'HID_KEYBOARD_SC_5_AND_PERCENTAGE'),
((4, 4), (1, 6), 'HID_KEYBOARD_SC_6_AND_CARET'),
((4, 4), (0, 6), 'HID_KEYBOARD_SC_7_AND_AND_AMPERSAND'),
((4, 4), (0, 7), 'HID_KEYBOARD_SC_8_AND_ASTERISK'),
((4, 4), (0, 8), 'HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS'),
((4, 4), (0, 9), 'HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS'),
((4, 4), (1, 9), 'HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE'),
((4, 4), (1, 7), 'HID_KEYBOARD_SC_EQUAL_AND_PLUS'),
((8, 4), (7, 10), 'HID_KEYBOARD_SC_BACKSPACE'),
(1, None, '0'),
((4, 4), (1, 14), 'HID_KEYBOARD_SC_INSERT'),
((4, 4), (1, 16), 'HID_KEYBOARD_SC_HOME'),
((4, 4), (1, 15), 'HID_KEYBOARD_SC_PAGE_UP'),
(1, None, '0'),
((4, 4), (3, 13), 'HID_KEYBOARD_SC_NUM_LOCK'),
((4, 4), (3, 14), 'HID_KEYBOARD_SC_KEYPAD_SLASH'),
((4, 4), (3, 15), 'HID_KEYBOARD_SC_KEYPAD_ASTERISK'),
((4, 4), (2, 15), 'HID_KEYBOARD_SC_KEYPAD_MINUS')],
[((6, 4), (6, 2), 'HID_KEYBOARD_SC_TAB'),
((4, 4), (7, 2), 'HID_KEYBOARD_SC_Q'),
((4, 4), (7, 3), 'HID_KEYBOARD_SC_W'),
((4, 4), (7, 4), 'HID_KEYBOARD_SC_E'),
((4, 4), (7, 5), 'HID_KEYBOARD_SC_R'),
((4, 4), (6, 5), 'HID_KEYBOARD_SC_T'),
((4, 4), (6, 6), 'HID_KEYBOARD_SC_Y'),
((4, 4), (7, 6), 'HID_KEYBOARD_SC_U'),
((4, 4), (7, 7), 'HID_KEYBOARD_SC_I'),
((4, 4), (7, 8), 'HID_KEYBOARD_SC_O'),
((4, 4), (7, 9), 'HID_KEYBOARD_SC_P'),
((4, 4), (6, 7), 'HID_KEYBOARD_SC_OPENING_BRACKET_AND_OPENING_BRACE'),
((4, 4), (6, 9), 'HID_KEYBOARD_SC_CLOSING_BRACKET_AND_CLOSING_BRACE'),
(1, None, '0'),
((5, 8), (3, 12), 'HID_KEYBOARD_SC_ENTER'),
(1, None, '0'),
((4, 4), (1, 13), 'HID_KEYBOARD_SC_DELETE'),
((4, 4), (0, 16), 'HID_KEYBOARD_SC_END'),
((4, 4), (0, 15), 'HID_KEYBOARD_SC_PAGE_DOWN'),
(1, None, '0'),
((4, 4), (7, 13), 'HID_KEYBOARD_SC_KEYPAD_7_AND_HOME'),
((4, 4), (7, 14), 'HID_KEYBOARD_SC_KEYPAD_8_AND_UP_ARROW'),
((4, 4), (7, 15), 'HID_KEYBOARD_SC_KEYPAD_9_AND_PAGE_UP'),
((4, 8), (7, 16), 'HID_KEYBOARD_SC_KEYPAD_PLUS')],
[((7, 4), (6, 3), 'HID_KEYBOARD_SC_CAPS_LOCK'),
((4, 4), (5, 2), 'HID_KEYBOARD_SC_A'),
((4, 4), (5, 3), 'HID_KEYBOARD_SC_S'),
((4, 4), (5, 4), 'HID_KEYBOARD_SC_D'),
((4, 4), (5, 5), 'HID_KEYBOARD_SC_F'),
((4, 4), (4, 5), 'HID_KEYBOARD_SC_G'),
((4, 4), (4, 6), 'HID_KEYBOARD_SC_H'),
((4, 4), (5, 6), 'HID_KEYBOARD_SC_J'),
((4, 4), (5, 7), 'HID_KEYBOARD_SC_K'),
((4, 4), (5, 8), 'HID_KEYBOARD_SC_L'),
((4, 4), (5, 9), 'HID_KEYBOARD_SC_SEMICOLON_AND_COLON'),
((4, 4), (4, 9), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE'),
((4, 4), (5, 11), 'HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE'),
(-19, None, '0'),
((4, 4), (6, 13), 'HID_KEYBOARD_SC_KEYPAD_4_AND_LEFT_ARROW'),
((4, 4), (6, 14), 'HID_KEYBOARD_SC_KEYPAD_5'),
((4, 4), (6, 15), 'HID_KEYBOARD_SC_KEYPAD_6_AND_RIGHT_ARROW'),
(-4, None, '0')],
[((5, 4), (6, 1), 'HID_KEYBOARD_SC_LEFT_SHIFT'),
((4, 4), (2, 2), 'HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE'),
((4, 4), (3, 2), 'HID_KEYBOARD_SC_Z'),
((4, 4), (3, 3), 'HID_KEYBOARD_SC_X'),
((4, 4), (3, 4), 'HID_KEYBOARD_SC_C'),
((4, 4), (3, 5), 'HID_KEYBOARD_SC_V'),
((4, 4), (2, 5), 'HID_KEYBOARD_SC_B'),
((4, 4), (2, 6), 'HID_KEYBOARD_SC_N'),
((4, 4), (3, 6), 'HID_KEYBOARD_SC_M'),
((4, 4), (3, 7), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
((4, 4), (3, 8), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
((4, 4), (2, 9), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK'),
((11, 4), (5, 1), 'HID_KEYBOARD_SC_RIGHT_SHIFT'),
(5, None, '0'),
((4, 4), (4, 16), 'HID_KEYBOARD_SC_UP_ARROW'),
(5, None, '0'),
((4, 4), (5, 13), 'HID_KEYBOARD_SC_KEYPAD_1_AND_END'),
((4, 4), (5, 14), 'HID_KEYBOARD_SC_KEYPAD_2_AND_DOWN_ARROW'),
((4, 4), (5, 15), 'HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN'),
((4, 8), (5, 16), 'HID_KEYBOARD_SC_KEYPAD_ENTER')],
[((5, 4), (1, 10), 'HID_KEYBOARD_SC_LEFT_CONTROL'),
((5, 4), (6, 0), 'HID_KEYBOARD_SC_LEFT_GUI'),
((5, 4), (4, 11), 'HID_KEYBOARD_SC_LEFT_ALT'),
((25, 4), (4, 13), 'HID_KEYBOARD_SC_SPACE'),
((5, 4), (2, 11), 'HID_KEYBOARD_SC_RIGHT_ALT'),
((5, 4), (7, 0), 'HID_KEYBOARD_SC_RIGHT_GUI'),
((5, 4), (2, 8), 'HID_KEYBOARD_SC_APPLICATION'),
((5, 4), (3, 10), 'HID_KEYBOARD_SC_RIGHT_CONTROL'),
(1, None, '0'),
((4, 4), (2, 16), 'HID_KEYBOARD_SC_LEFT_ARROW'),
((4, 4), (2, 13), 'HID_KEYBOARD_SC_DOWN_ARROW'),
((4, 4), (2, 14), 'HID_KEYBOARD_SC_RIGHT_ARROW'),
(1, None, '0'),
((8, 4), (4, 14), 'HID_KEYBOARD_SC_KEYPAD_0_AND_INSERT'),
((4, 4), (4, 15), 'HID_KEYBOARD_SC_KEYPAD_DOT_AND_DELETE'),
(-4, None, '0')]
]
alt_layouts = {}
-
Is there any documentation as to how the three AT90USB1286 builds differ? I've tried my layout (18x8 matrix, config below if it's helpful) on an empty Teensy 2.0++ using the Fullsize 16mhz and Jumbo and don't get any output using a wire between pins. I'm sure someone said they got a key to output...
There should be documentation, but I haven't written any. The hardware descriptions, other than the part/clock, are kept here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/templates/__init__.py
You will see that the only size that fits your 8x18 matrix is the COSTAR, which isn't currently being built for that part. However, it's trivial to add. I'm compiling it now.
I've never used a teensy++, so I'm not even completely sure that it works right. Sam has tried it and I think MOZ.
-
Is there any documentation as to how the three AT90USB1286 builds differ? I've tried my layout (18x8 matrix, config below if it's helpful) on an empty Teensy 2.0++ using the Fullsize 16mhz and Jumbo and don't get any output using a wire between pins. I'm sure someone said they got a key to output...
There should be documentation, but I haven't written any. The hardware descriptions, other than the part/clock, are kept here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/templates/__init__.py
You will see that the only size that fits your 8x18 matrix is the COSTAR, which isn't currently being built for that part. However, it's trivial to add. I'm compiling it now.
I've never used a teensy++, so I'm not even completely sure that it works right. Sam has tried it and I think MOZ.
That's a good reason, thanks! You'd have to be crazy to handwire a fullsize and if you did you would do 7x lots as you've allowed for. I guess my build is closest to the Costar ones in that it's a hijacked commercial matrix...
I see the new file is uploaded already so I'll give it a test now :)
edit: It works! Pause presses backspace, there's no number lock, and half of the F keys don't register, but this edit was typed on the EasyAVR'd board :D
-
Is there any documentation as to how the three AT90USB1286 builds differ? I've tried my layout (18x8 matrix, config below if it's helpful) on an empty Teensy 2.0++ using the Fullsize 16mhz and Jumbo and don't get any output using a wire between pins. I'm sure someone said they got a key to output...
# Easy AVR USB Keyboard Firmware Keymapper
# Copyright (C) 2013-2016 David Howland
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
import easykeymap.templates.AT90USB1286_16MHz_FULLSIZE as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config
description = "Ducky Zero"
unique_id = "DUCKY_001"
cfg_name = "Ducky 108"
teensy = True
hw_boot_key = False
display_height = int(6.5*4)
display_width = int(22.5*4)
num_rows = 8
num_cols = 18
strobe_cols = True
strobe_low = True
matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
strobe_cols=strobe_cols,
strobe_low=strobe_low,
rows=[D2, D1, D4, B0, D0, C5, B7, F0],
cols=[F7, F4, B2, B3, B4, B5, E6, B6, F2, F3, F5, D5, D6, C7, C6, E0, F6, E1],
device=firmware.device
)
num_leds = 2
num_ind = 2
num_bl_enab = 2
led_definition = [
('Caps Key', 'Caps Lock'),
('Num Key', 'Num Lock')
]
led_hardware = [
( REF_PORTD, 6, LED_DRIVER_PULLUP ),
( REF_PORTF, 1, LED_DRIVER_PULLUP )
]
backlighting = False
bl_modes = [
( 0, 0 ),
( 1, 1 )
]
KMAC_key = None
keyboard_definition = [
[((4, 4), (3, 2), 'HID_KEYBOARD_SC_ESCAPE'),
(4, None, '0'),
((4, 4), (1, 3), 'HID_KEYBOARD_SC_F1'),
((4, 4), (1, 4), 'HID_KEYBOARD_SC_F2'),
((4, 4), (6, 4), 'HID_KEYBOARD_SC_F3'),
((4, 4), (4, 4), 'HID_KEYBOARD_SC_F4'),
(2, None, '0'),
((4, 4), (0, 10), 'HID_KEYBOARD_SC_F5'),
((4, 4), (4, 8), 'HID_KEYBOARD_SC_F6'),
((4, 4), (6, 8), 'HID_KEYBOARD_SC_F7'),
((4, 4), (1, 8), 'HID_KEYBOARD_SC_F8'),
(2, None, '0'),
((4, 4), (1, 12), 'HID_KEYBOARD_SC_F9'),
((4, 4), (0, 12), 'HID_KEYBOARD_SC_F10'),
((4, 4), (4, 12), 'HID_KEYBOARD_SC_F11'),
((4, 4), (0, 14), 'HID_KEYBOARD_SC_F12'),
(1, None, '0'),
((4, 4), (0, 11), 'HID_KEYBOARD_SC_PRINT_SCREEN'),
((4, 4), (7, 11), 'HID_KEYBOARD_SC_SCROLL_LOCK'),
((4, 4), (7, 10), 'HID_KEYBOARD_SC_PAUSE'),
(1, None, '0'),
((4, 4), (1, 12), 'SCANCODE_MUTE'),
((4, 4), (0, 12), 'SCANCODE_VOL_DEC'),
((4, 4), (4, 12), 'SCANCODE_VOL_DEC'),
((4, 4), (2, 12), 'SCANCODE_CALC')],
2,
[((4, 4), (1, 2), 'HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE'),
((4, 4), (0, 2), 'HID_KEYBOARD_SC_1_AND_EXCLAMATION'),
((4, 4), (0, 3), 'HID_KEYBOARD_SC_2_AND_AT'),
((4, 4), (0, 4), 'HID_KEYBOARD_SC_3_AND_HASHMARK'),
((4, 4), (0, 5), 'HID_KEYBOARD_SC_4_AND_DOLLAR'),
((4, 4), (1, 5), 'HID_KEYBOARD_SC_5_AND_PERCENTAGE'),
((4, 4), (1, 6), 'HID_KEYBOARD_SC_6_AND_CARET'),
((4, 4), (0, 6), 'HID_KEYBOARD_SC_7_AND_AND_AMPERSAND'),
((4, 4), (0, 7), 'HID_KEYBOARD_SC_8_AND_ASTERISK'),
((4, 4), (0, 8), 'HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS'),
((4, 4), (0, 9), 'HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS'),
((4, 4), (1, 9), 'HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE'),
((4, 4), (1, 7), 'HID_KEYBOARD_SC_EQUAL_AND_PLUS'),
((8, 4), (7, 10), 'HID_KEYBOARD_SC_BACKSPACE'),
(1, None, '0'),
((4, 4), (1, 14), 'HID_KEYBOARD_SC_INSERT'),
((4, 4), (1, 16), 'HID_KEYBOARD_SC_HOME'),
((4, 4), (1, 15), 'HID_KEYBOARD_SC_PAGE_UP'),
(1, None, '0'),
((4, 4), (3, 13), 'HID_KEYBOARD_SC_NUM_LOCK'),
((4, 4), (3, 14), 'HID_KEYBOARD_SC_KEYPAD_SLASH'),
((4, 4), (3, 15), 'HID_KEYBOARD_SC_KEYPAD_ASTERISK'),
((4, 4), (2, 15), 'HID_KEYBOARD_SC_KEYPAD_MINUS')],
[((6, 4), (6, 2), 'HID_KEYBOARD_SC_TAB'),
((4, 4), (7, 2), 'HID_KEYBOARD_SC_Q'),
((4, 4), (7, 3), 'HID_KEYBOARD_SC_W'),
((4, 4), (7, 4), 'HID_KEYBOARD_SC_E'),
((4, 4), (7, 5), 'HID_KEYBOARD_SC_R'),
((4, 4), (6, 5), 'HID_KEYBOARD_SC_T'),
((4, 4), (6, 6), 'HID_KEYBOARD_SC_Y'),
((4, 4), (7, 6), 'HID_KEYBOARD_SC_U'),
((4, 4), (7, 7), 'HID_KEYBOARD_SC_I'),
((4, 4), (7, 8), 'HID_KEYBOARD_SC_O'),
((4, 4), (7, 9), 'HID_KEYBOARD_SC_P'),
((4, 4), (6, 7), 'HID_KEYBOARD_SC_OPENING_BRACKET_AND_OPENING_BRACE'),
((4, 4), (6, 9), 'HID_KEYBOARD_SC_CLOSING_BRACKET_AND_CLOSING_BRACE'),
(1, None, '0'),
((5, 8), (3, 12), 'HID_KEYBOARD_SC_ENTER'),
(1, None, '0'),
((4, 4), (1, 13), 'HID_KEYBOARD_SC_DELETE'),
((4, 4), (0, 16), 'HID_KEYBOARD_SC_END'),
((4, 4), (0, 15), 'HID_KEYBOARD_SC_PAGE_DOWN'),
(1, None, '0'),
((4, 4), (7, 13), 'HID_KEYBOARD_SC_KEYPAD_7_AND_HOME'),
((4, 4), (7, 14), 'HID_KEYBOARD_SC_KEYPAD_8_AND_UP_ARROW'),
((4, 4), (7, 15), 'HID_KEYBOARD_SC_KEYPAD_9_AND_PAGE_UP'),
((4, 8), (7, 16), 'HID_KEYBOARD_SC_KEYPAD_PLUS')],
[((7, 4), (6, 3), 'HID_KEYBOARD_SC_CAPS_LOCK'),
((4, 4), (5, 2), 'HID_KEYBOARD_SC_A'),
((4, 4), (5, 3), 'HID_KEYBOARD_SC_S'),
((4, 4), (5, 4), 'HID_KEYBOARD_SC_D'),
((4, 4), (5, 5), 'HID_KEYBOARD_SC_F'),
((4, 4), (4, 5), 'HID_KEYBOARD_SC_G'),
((4, 4), (4, 6), 'HID_KEYBOARD_SC_H'),
((4, 4), (5, 6), 'HID_KEYBOARD_SC_J'),
((4, 4), (5, 7), 'HID_KEYBOARD_SC_K'),
((4, 4), (5, 8), 'HID_KEYBOARD_SC_L'),
((4, 4), (5, 9), 'HID_KEYBOARD_SC_SEMICOLON_AND_COLON'),
((4, 4), (4, 9), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE'),
((4, 4), (5, 11), 'HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE'),
(-19, None, '0'),
((4, 4), (6, 13), 'HID_KEYBOARD_SC_KEYPAD_4_AND_LEFT_ARROW'),
((4, 4), (6, 14), 'HID_KEYBOARD_SC_KEYPAD_5'),
((4, 4), (6, 15), 'HID_KEYBOARD_SC_KEYPAD_6_AND_RIGHT_ARROW'),
(-4, None, '0')],
[((5, 4), (6, 1), 'HID_KEYBOARD_SC_LEFT_SHIFT'),
((4, 4), (2, 2), 'HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE'),
((4, 4), (3, 2), 'HID_KEYBOARD_SC_Z'),
((4, 4), (3, 3), 'HID_KEYBOARD_SC_X'),
((4, 4), (3, 4), 'HID_KEYBOARD_SC_C'),
((4, 4), (3, 5), 'HID_KEYBOARD_SC_V'),
((4, 4), (2, 5), 'HID_KEYBOARD_SC_B'),
((4, 4), (2, 6), 'HID_KEYBOARD_SC_N'),
((4, 4), (3, 6), 'HID_KEYBOARD_SC_M'),
((4, 4), (3, 7), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
((4, 4), (3, 8), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
((4, 4), (2, 9), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK'),
((11, 4), (5, 1), 'HID_KEYBOARD_SC_RIGHT_SHIFT'),
(5, None, '0'),
((4, 4), (4, 16), 'HID_KEYBOARD_SC_UP_ARROW'),
(5, None, '0'),
((4, 4), (5, 13), 'HID_KEYBOARD_SC_KEYPAD_1_AND_END'),
((4, 4), (5, 14), 'HID_KEYBOARD_SC_KEYPAD_2_AND_DOWN_ARROW'),
((4, 4), (5, 15), 'HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN'),
((4, 8), (5, 16), 'HID_KEYBOARD_SC_KEYPAD_ENTER')],
[((5, 4), (1, 10), 'HID_KEYBOARD_SC_LEFT_CONTROL'),
((5, 4), (6, 0), 'HID_KEYBOARD_SC_LEFT_GUI'),
((5, 4), (4, 11), 'HID_KEYBOARD_SC_LEFT_ALT'),
((25, 4), (4, 13), 'HID_KEYBOARD_SC_SPACE'),
((5, 4), (2, 11), 'HID_KEYBOARD_SC_RIGHT_ALT'),
((5, 4), (7, 0), 'HID_KEYBOARD_SC_RIGHT_GUI'),
((5, 4), (2, 8), 'HID_KEYBOARD_SC_APPLICATION'),
((5, 4), (3, 10), 'HID_KEYBOARD_SC_RIGHT_CONTROL'),
(1, None, '0'),
((4, 4), (2, 16), 'HID_KEYBOARD_SC_LEFT_ARROW'),
((4, 4), (2, 13), 'HID_KEYBOARD_SC_DOWN_ARROW'),
((4, 4), (2, 14), 'HID_KEYBOARD_SC_RIGHT_ARROW'),
(1, None, '0'),
((8, 4), (4, 14), 'HID_KEYBOARD_SC_KEYPAD_0_AND_INSERT'),
((4, 4), (4, 15), 'HID_KEYBOARD_SC_KEYPAD_DOT_AND_DELETE'),
(-4, None, '0')]
]
alt_layouts = {}
Hey sui, can you try to explain to me the values in the spacer lines you have added in your code?
such as (4, None, '0').
or the very last line, (-4, None, '0')
also how the negative numbers work?
-
Hey sui, can you try to explain to me the values in the spacer lines you have added in your code?
such as (4, None, '0').
or the very last line, (-4, None, '0')
also how the negative numbers work?
Okay so all this weirdness came about because the tool grew from a very narrow scope to the semi-large project that it is now. It should have been redesigned but I just didn't have time.
Here is the text from the handwire tutorial:
# Define your layout. This is a list of rows. Each row is a list
# of keys. Each key is a tuple of three items. First item is a tuple
# defining the width,height of the key. If it is just a number, it
# will be a space instead of a key. All units are in quarter key lengths,
# so a standard key would be (4,4). Second item is a tuple defining the
# row,column in the matrix for that key. Third item is the default scancode
# for that key, from scancodes.py. If a row is a number instead of a list,
# it will just make a vertical spacer.
Lists in python are sequences inside [] and tuples are inside (). The difference doesn't matter right now.
So the keyboard is a list of rows, and the rows are lists of keys. It's basically a 2D array of keys. Keys are expressed as a 3-item tuple like this:
((4, 4), (0, 0), 'HID_KEYBOARD_SC_ESCAPE')
The first item can be either a number or a tuple. If it is a tuple, it gives the size of the key in quarter-key lengths (width, height). If height is positive and greater than 4, it will grow downward. If height is negative and greater than 4, it will grow upward. If the first item is not a tuple but a number, it is a spacer. A positive number puts in a visible space (think between F4 and F5 on a standard keyboard). A negative number puts in an invisible space (think underneath a vertical key like ISO Enter).
The second item is the matrix location of the key. Some keyboards do not logically arrange the keys in the same way that they are physically arranged. Costar boards are an example of this. If describing a spacer, there is no applicable matrix location, so it should be "None".
The last item can be either a string with the default scancode, or a list of scancodes in the order of the layers.
-
Awesome, You are quite the hero in my book.
So after all my trials and tribulations with the Moist60 AEK board, I took the rest and turned it to a cool little compact pad for work and data entry.
(http://i.imgur.com/TfpLZwl.jpg)
(http://i.imgur.com/AkGVFVc.jpg)
I took the info you just gave me and my learned knowledge from flailing around in EasyAVR to make this up
(http://i.imgur.com/3bIjFsX.png)
Success on my first try!
Thanks for being so attentive ans helpful!
Now to switch the slash and asterisk caps, and make some macros.
-
Looking good! That's a cool pad.
-
metal, I just switched back to AVR this morning. Debounce 6, Matrix setup wait is 40.
So far only had one case of a double space bar.
Slightly off topic question but are there keys I can bind on the keyboard to then setup with Autohotkey that wouldnt interfere with regular use?
For instance I was using combinations like alt-f1, ctrl-f1 which may eventually interfere with a valid command like alt-f4.
I saw the options for HID_KEYBOARD_SC_F13 - 24. Im guessing these should be perfectly fine to use since my keyboard is a common F1-F12?
Edit: Tried F13 and didn't seem to do anything.
-
Slightly off topic question but are there keys I can bind on the keyboard to then setup with Autohotkey that wouldnt interfere with regular use?
For instance I was using combinations like alt-f1, ctrl-f1 which may eventually interfere with a valid command like alt-f4.
I saw the options for HID_KEYBOARD_SC_F13 - 24. Im guessing these should be perfectly fine to use since my keyboard is a common F1-F12?
The combination you use and whether it interferes with an existing hotkey, will depend on the apps running, window on top and the OS; it will interfere if the combination is already bound to something, the keyboard has little to do with it. The F13-F24 keys should be good to go as they aren't part of the modern day keyboard and thus are unlikely to be previously bound in the system.
-
metal, I just switched back to AVR this morning. Debounce 6, Matrix setup wait is 40.
So far only had one case of a double space bar.
I would turn up Debounce before turning up the setup wait. My Epsilon uses Debounce = 12 and setup wait = 2. You may want to try Debounce = 16 if your board is particularly glitchy.
Slightly off topic question but are there keys I can bind on the keyboard to then setup with Autohotkey that wouldnt interfere with regular use?
For instance I was using combinations like alt-f1, ctrl-f1 which may eventually interfere with a valid command like alt-f4.
I saw the options for HID_KEYBOARD_SC_F13 - 24. Im guessing these should be perfectly fine to use since my keyboard is a common F1-F12?
I'm not so sure that F13-F24 work with Windows. See the USB HID spec for the keyboard data page describes 256 scancodes, but Windows, Mac, and *nix each use a different subset of them. Windows doesn't really use anything beyond the standard ANSI/ISO layout. Mac is fairly close. I deactivated pretty much everything else and reused those codes internally for special functions. Those aren't sent to the PC. So, back on topic, I included F13-F24 for the Linux folks, but I'm not sure Windows reacts to those codes. You'll have to test it. To be honest, I think your best bet is just to use Ctrl+Alt+<any key>, or something like that.
-
Fo reference, this page has some good information on scancodes: http://www.quadibloc.com/comp/scan.htm
-
I'm not so sure that F13-F24 work with Windows. See the USB HID spec for the keyboard data page describes 256 scancodes, but Windows, Mac, and *nix each use a different subset of them. Windows doesn't really use anything beyond the standard ANSI/ISO layout. Mac is fairly close. I deactivated pretty much everything else and reused those codes internally for special functions. Those aren't sent to the PC. So, back on topic, I included F13-F24 for the Linux folks, but I'm not sure Windows reacts to those codes. You'll have to test it. To be honest, I think your best bet is just to use Ctrl+Alt+<any key>, or something like that.
Yea, thats what its looking like. I was thinking something like ctrl-alt since I don't recall off hand any othher combinations using it besides del.
There goes that double h... So stressful. TMK is too rough to work with for on the fly changes and adjustments, but easyAVR is missing something that keeps triggering these phantom hits.
It's definitely gotta play a part with me physically as I ido see a few, very rare, on my home razer w/ mx blueus.
Double I and u in previous. argh.
Ill play with some more debounce.
-
A while ago asked about rgb strip backlightning, still not a thing, if not will it become a thing, otherwise qmk is the best for rgb right?
-
Myself and Iss as well are working on a solution, maybe more people too. Currently, QMK is the best way to go.
-
Sorry, for not reading previous posts, but I just have a question. I already asked it on reddit, but I was redirected to this forum.
So: I made an Alt code macro, just like here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/manuals/macros.txt on line 54. But instead of one symbol, for example \ALT(123), I get the caracters for Alt 1, Alt 2 and Alt 3 next to each other... so instead of { I get ☺☻♥. That is very weird...
Thank you all!
-
Sorry, for not reading previous posts, but I just have a question. I already asked it on reddit, but I was redirected to this forum.
So: I made an Alt code macro, just like here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/manuals/macros.txt on line 54. But instead of one symbol, for example \ALT(123), I get the caracters for Alt 1, Alt 2 and Alt 3 next to each other... so instead of { I get ☺☻♥. That is very weird...
Thank you all!
Hmmm, I haven't tested this in a while, but what you have should work. Try these:
1) You don't need the ',' after the \ALT sequence, because it terminates with a ')'. Try omitting the comma.
2) I can't remember if NumLock matters for ALT codes. Try it with and without NumLock.
3) Make sure you aren't holding other keys when you run this.
-
Quick q
EasyAVR is easy enough, but my problem is with loading it to the board.
I can program my teensies all day with teensy loader, but flip is still telling me It cannot connect to usb device.
I have put it into boot mode, told atmega in device manager to update drivers from the atmel folder, and still no connection to program the board through flip.
I can program the board fine with tmk, but like using easyAVR more.
It is the satan gh knockoff and Im using Windows 10 with Flip v3.4.7
Any changes I need to make?
-
I've been working on adding support for uploading directly from Easy AVR for various bootloader, Atmel/DFU, Teensy included. It uses external command line tools to do the upload. You are welcome to try out the fork on GitHub.
-
Sorry, for not reading previous posts, but I just have a question. I already asked it on reddit, but I was redirected to this forum.
So: I made an Alt code macro, just like here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/manuals/macros.txt on line 54. But instead of one symbol, for example \ALT(123), I get the caracters for Alt 1, Alt 2 and Alt 3 next to each other... so instead of { I get ☺☻♥. That is very weird...
Thank you all!
Hmmm, I haven't tested this in a while, but what you have should work. Try these:
1) You don't need the ',' after the \ALT sequence, because it terminates with a ')'. Try omitting the comma.
2) I can't remember if NumLock matters for ALT codes. Try it with and without NumLock.
3) Make sure you aren't holding other keys when you run this.
Okay, so 1. The comma was just for grammatical purposes, it does terminate with )
2. The numlock state doesn't change anything, at least if the numlock state from anopther keyboard counts.
3. I am only holding the Layer key. When I make a layer, that I need to hold the key for, do I need to have that llayer key in that layer too? Example, I have Fn3 in the main layer, do I need an Fn3 key at the same position in Layer 3? I just left it blank.
Thanks for your time!
-
Quick q
EasyAVR is easy enough, but my problem is with loading it to the board.
I can program my teensies all day with teensy loader, but flip is still telling me It cannot connect to usb device.
I have put it into boot mode, told atmega in device manager to update drivers from the atmel folder, and still no connection to program the board through flip.
I can program the board fine with tmk, but like using easyAVR more.
It is the satan gh knockoff and Im using Windows 10 with Flip v3.4.7
Any changes I need to make?
Make sure you have selected the correct AVR part in Flip. In your case it would be the ATmega32U4. Then try to connect with USB
-
Sorry, for not reading previous posts, but I just have a question. I already asked it on reddit, but I was redirected to this forum.
So: I made an Alt code macro, just like here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/manuals/macros.txt on line 54. But instead of one symbol, for example \ALT(123), I get the caracters for Alt 1, Alt 2 and Alt 3 next to each other... so instead of { I get ☺☻♥. That is very weird...
Thank you all!
Hmmm, I haven't tested this in a while, but what you have should work. Try these:
1) You don't need the ',' after the \ALT sequence, because it terminates with a ')'. Try omitting the comma.
2) I can't remember if NumLock matters for ALT codes. Try it with and without NumLock.
3) Make sure you aren't holding other keys when you run this.
Okay, so 1. The comma was just for grammatical purposes, it does terminate with )
2. The numlock state doesn't change anything, at least if the numlock state from anopther keyboard counts.
3. I am only holding the Layer key. When I make a layer, that I need to hold the key for, do I need to have that llayer key in that layer too? Example, I have Fn3 in the main layer, do I need an Fn3 key at the same position in Layer 3? I just left it blank.
Thanks for your time!
Okay, cool. There is no technical requirement to assign the Fn key on the target layer.
Anyway I'm going to have to test this when I get home from work. I'll get back to you.
-
Quick q
EasyAVR is easy enough, but my problem is with loading it to the board.
I can program my teensies all day with teensy loader, but flip is still telling me It cannot connect to usb device.
I have put it into boot mode, told atmega in device manager to update drivers from the atmel folder, and still no connection to program the board through flip.
I can program the board fine with tmk, but like using easyAVR more.
It is the satan gh knockoff and Im using Windows 10 with Flip v3.4.7
Any changes I need to make?
Make sure you have selected the correct AVR part in Flip. In your case it would be the ATmega32U4. Then try to connect with USB
I can say I definitely have selected that one in flip correctly.
Hmm
Sent from my D6708 using Tapatalk
-
Sorry, for not reading previous posts, but I just have a question. I already asked it on reddit, but I was redirected to this forum.
So: I made an Alt code macro, just like here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/manuals/macros.txt on line 54. But instead of one symbol, for example \ALT(123), I get the caracters for Alt 1, Alt 2 and Alt 3 next to each other... so instead of { I get ☺☻♥. That is very weird...
Thank you all!
Hmmm, I haven't tested this in a while, but what you have should work. Try these:
1) You don't need the ',' after the \ALT sequence, because it terminates with a ')'. Try omitting the comma.
2) I can't remember if NumLock matters for ALT codes. Try it with and without NumLock.
3) Make sure you aren't holding other keys when you run this.
Okay, so 1. The comma was just for grammatical purposes, it does terminate with )
2. The numlock state doesn't change anything, at least if the numlock state from anopther keyboard counts.
3. I am only holding the Layer key. When I make a layer, that I need to hold the key for, do I need to have that llayer key in that layer too? Example, I have Fn3 in the main layer, do I need an Fn3 key at the same position in Layer 3? I just left it blank.
Thanks for your time!
Okay, cool. There is no technical requirement to assign the Fn key on the target layer.
Anyway I'm going to have to test this when I get home from work. I'll get back to you.
Thanks!
PS: What is your job, just curious? Developer?
-
Thanks!
PS: What is your job, just curious? Developer?
He's the on call AVR geekhack demon.
a deal was made in clacks, and he has to help us all for eternity.
-
I used to have clacks. I gave them away.
I'm a computer engineer and all around nerd.
-
I can say I definitely have selected that one in flip correctly.
Hmm
Sent from my D6708 using Tapatalk
You may not have the driver loaded. Or a different driver than the one that comes with Flip. Try this http://imgur.com/a/bnwzy
-
Quick q
EasyAVR is easy enough, but my problem is with loading it to the board.
I can program my teensies all day with teensy loader, but flip is still telling me It cannot connect to usb device.
I have put it into boot mode, told atmega in device manager to update drivers from the atmel folder, and still no connection to program the board through flip.
I can program the board fine with tmk, but like using easyAVR more.
It is the satan gh knockoff and Im using Windows 10 with Flip v3.4.7
Any changes I need to make?
Make sure you have selected the correct AVR part in Flip. In your case it would be the ATmega32U4. Then try to connect with USB
I can say I definitely have selected that one in flip correctly.
Hmm
Okay so I need to back up a little bit. You said that it works "fine with tmk". TMK and EasyAVR are both firmware projects. The product is a loadable firmware file. How you get the file on your board is, frankly, out of scope for both projects. So presumably you have a TMK .hex file and an EasyAVR .hex file. Just do whatever you do to load the tmk file to load the EasyAVR file. I use Flip because I find it to be the easiest and most reliable by far. It has always worked correctly for me with five simple steps.
1. put keyboard into bootloader mode.
2. select atmega32U4
3. open USB connection
4. open .hex file
5. press Run button, then Start Application button
This process is completely independent of what firmware you choose to use.
-
Quick q
EasyAVR is easy enough, but my problem is with loading it to the board.
I can program my teensies all day with teensy loader, but flip is still telling me It cannot connect to usb device.
I have put it into boot mode, told atmega in device manager to update drivers from the atmel folder, and still no connection to program the board through flip.
I can program the board fine with tmk, but like using easyAVR more.
It is the satan gh knockoff and Im using Windows 10 with Flip v3.4.7
Any changes I need to make?
Make sure you have selected the correct AVR part in Flip. In your case it would be the ATmega32U4. Then try to connect with USB
I can say I definitely have selected that one in flip correctly.
Hmm
Okay so I need to back up a little bit. You said that it works "fine with tmk". TMK and EasyAVR are both firmware projects. The product is a loadable firmware file. How you get the file on your board is, frankly, out of scope for both projects. So presumably you have a TMK .hex file and an EasyAVR .hex file. Just do whatever you do to load the tmk file to load the EasyAVR file. I use Flip because I find it to be the easiest and most reliable by far. It has always worked correctly for me with five simple steps.
1. put keyboard into bootloader mode.
2. select atmega32U4
3. open USB connection
4. open .hex file
5. press Run button, then Start Application button
This process is completely independent of what firmware you choose to use.
I understand that,
I should have been more specific.
For this board I use the tkg tool and so I'm loading a .eep file.
I never manually program a hex file on the board.
I know this is out of scope, but I figured this would be a good thread to ask about flip issues
-
Quick q
EasyAVR is easy enough, but my problem is with loading it to the board.
I can program my teensies all day with teensy loader, but flip is still telling me It cannot connect to usb device.
I have put it into boot mode, told atmega in device manager to update drivers from the atmel folder, and still no connection to program the board through flip.
I can program the board fine with tmk, but like using easyAVR more.
It is the satan gh knockoff and Im using Windows 10 with Flip v3.4.7
Any changes I need to make?
Make sure you have selected the correct AVR part in Flip. In your case it would be the ATmega32U4. Then try to connect with USB
I can say I definitely have selected that one in flip correctly.
Hmm
Okay so I need to back up a little bit. You said that it works "fine with tmk". TMK and EasyAVR are both firmware projects. The product is a loadable firmware file. How you get the file on your board is, frankly, out of scope for both projects. So presumably you have a TMK .hex file and an EasyAVR .hex file. Just do whatever you do to load the tmk file to load the EasyAVR file. I use Flip because I find it to be the easiest and most reliable by far. It has always worked correctly for me with five simple steps.
1. put keyboard into bootloader mode.
2. select atmega32U4
3. open USB connection
4. open .hex file
5. press Run button, then Start Application button
This process is completely independent of what firmware you choose to use.
I understand that,
I should have been more specific.
For this board I use the tkg tool and so I'm loading a .eep file.
I never manually program a hex file on the board.
I know this is out of scope, but I figured this would be a good thread to ask about flip issues
A .eep file is a .hex file that targets EEPROM instead of Flash ROM. How did you get the TMK firmware on your board in the first place?
-
Sorry, for not reading previous posts, but I just have a question. I already asked it on reddit, but I was redirected to this forum.
So: I made an Alt code macro, just like here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/manuals/macros.txt on line 54. But instead of one symbol, for example \ALT(123), I get the caracters for Alt 1, Alt 2 and Alt 3 next to each other... so instead of { I get ☺☻♥. That is very weird...
Thank you all!
This bug is confirmed. The problem is that the keyboard is lifting the ALT key between the numbers. This is caused by the fix to a different issue a while ago. I'll release a new version.
-
Quick q
EasyAVR is easy enough, but my problem is with loading it to the board.
I can program my teensies all day with teensy loader, but flip is still telling me It cannot connect to usb device.
I have put it into boot mode, told atmega in device manager to update drivers from the atmel folder, and still no connection to program the board through flip.
I can program the board fine with tmk, but like using easyAVR more.
It is the satan gh knockoff and Im using Windows 10 with Flip v3.4.7
Any changes I need to make?
Make sure you have selected the correct AVR part in Flip. In your case it would be the ATmega32U4. Then try to connect with USB
I can say I definitely have selected that one in flip correctly.
Hmm
Okay so I need to back up a little bit. You said that it works "fine with tmk". TMK and EasyAVR are both firmware projects. The product is a loadable firmware file. How you get the file on your board is, frankly, out of scope for both projects. So presumably you have a TMK .hex file and an EasyAVR .hex file. Just do whatever you do to load the tmk file to load the EasyAVR file. I use Flip because I find it to be the easiest and most reliable by far. It has always worked correctly for me with five simple steps.
1. put keyboard into bootloader mode.
2. select atmega32U4
3. open USB connection
4. open .hex file
5. press Run button, then Start Application button
This process is completely independent of what firmware you choose to use.
I understand that,
I should have been more specific.
For this board I use the tkg tool and so I'm loading a .eep file.
I never manually program a hex file on the board.
I know this is out of scope, but I figured this would be a good thread to ask about flip issues
A .eep file is a .hex file that targets EEPROM instead of Flash ROM. How did you get the TMK firmware on your board in the first place?
You drop your eep file onto a refresh.bat file in the tmk tkg tool
Sent from my D6708 using Tapatalk
-
Sorry, for not reading previous posts, but I just have a question. I already asked it on reddit, but I was redirected to this forum.
So: I made an Alt code macro, just like here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/manuals/macros.txt on line 54. But instead of one symbol, for example \ALT(123), I get the caracters for Alt 1, Alt 2 and Alt 3 next to each other... so instead of { I get ☺☻♥. That is very weird...
Thank you all!
This bug is confirmed. The problem is that the keyboard is lifting the ALT key between the numbers. This is caused by the fix to a different issue a while ago. I'll release a new version.
New version is released that fixes this.
-
Any chance the Atomic board could be supported? Thanks a lot!
从我的 iPhone 发送,使用 Tapatalk
-
Any chance the Atomic board could be supported? Thanks a lot!
从我的 iPhone 发送,使用 Tapatalk
If it uses an ATMega there's a chance.
If you also post a link to a TMK config there's a much better chance :thumb:
-
Atomic should be doable, I'm at work, or I would have given it a go.
here is the QMK configuration: https://github.com/jackhumbert/qmk_firmware/tree/master/keyboard/atomic
-
Got it. Thanks guys!
-
Sorry, for not reading previous posts, but I just have a question. I already asked it on reddit, but I was redirected to this forum.
So: I made an Alt code macro, just like here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/manuals/macros.txt on line 54. But instead of one symbol, for example \ALT(123), I get the caracters for Alt 1, Alt 2 and Alt 3 next to each other... so instead of { I get ☺☻♥. That is very weird...
Thank you all!
This bug is confirmed. The problem is that the keyboard is lifting the ALT key between the numbers. This is caused by the fix to a different issue a while ago. I'll release a new version.
New version is released that fixes this.
It works! ... but not as intended... I wanted dead keys, so I tried Alt + 0168 for example, but instead it prints out the character (¨ instead of ¨ + o = ö). Do you know how I could do that? Thanks for updating, though!
-
Got it. Thanks guys!
How's it going? Don't forget to post your config (or do a fancy pull request) so it can be added once it works :)
-
Ok I took a swipe at it
https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/boards/atomic.py
-
For some reason the key that has Esc and Tilde programmed to it requires pressing another key to output. An example is: ~e. I pressed shift+esc because I wanted to output one tilde but I had to press another key (in this case e) to output one, which output the keys together.
Edit: I also have a problem where when I press apostrophe it happens too and when I press apostrophe and another key it puts an accent on a key like í and ë when I do shift+apostrophe and another key. Am I stupid or is this a bug?
-
For some reason the key that has Esc and Tilde programmed to it requires pressing another key to output. An example is: ~e. I pressed shift+esc because I wanted to output one tilde but I had to press another key (in this case e) to output one, which output the keys together.
Edit: I also have a problem where when I press apostrophe it happens too and when I press apostrophe and another key it puts an accent on a key like í and ë when I do shift+apostrophe and another key. Am I stupid or is this a bug?
You're not stupid, but something strange is going on. I just programmed my Epsilon with the ESCGRAVE key and it works as expected. The behavior you describe is very strange. I'm not sure how the keyboard can even do those things, so I'm wondering if it's your PC? What locality is your machine using? Have you used a tool like EK Switch Hitter or Aqua's keytest to see exactly what keys are being pressed?
-
For some reason the key that has Esc and Tilde programmed to it requires pressing another key to output. An example is: ~e. I pressed shift+esc because I wanted to output one tilde but I had to press another key (in this case e) to output one, which output the keys together.
Edit: I also have a problem where when I press apostrophe it happens too and when I press apostrophe and another key it puts an accent on a key like í and ë when I do shift+apostrophe and another key. Am I stupid or is this a bug?
You're not stupid, but something strange is going on. I just programmed my Epsilon with the ESCGRAVE key and it works as expected. The behavior you describe is very strange. I'm not sure how the keyboard can even do those things, so I'm wondering if it's your PC? What locality is your machine using? Have you used a tool like EK Switch Hitter or Aqua's keytest to see exactly what keys are being pressed?
Just tried EK Switch Hitter and everything seems fine. http://prntscr.com/at1jiy
I'm not sure what you mean by locality, but for the keyboard settings I'm using US International.
-
What should I choose to import as firmware if i want to use it with a 16x10 keyboard(G80-9009).
I use a pro micro and one 74hc154.
-
There is currently no build that big. Do you really need such a large matrix? That size will probably be problematic.
-
There is currently no build that big. Do you really need such a large matrix? That size will probably be problematic.
Yes. G80-9009HAU has two parts. Upper part is 6x10 and lower is 10x10. Now I am using tmk to run 16x10 matrix. I want to try EasyAVR on it to make it easier to use.
[attachimg=1]
[attachimg=2]
-
Is the KC60 supported? It's similar to the GH60 so would it be possible to flash a GH60 hex file to it?
-
Is the KC60 supported? It's similar to the GH60 so would it be possible to flash a GH60 hex file to it?
If it's not in the list it's not supported, but it allegedly uses tmk so sounds likely that it could be added. A quick search failed to find the source code - do you have a link?
-
https://github.com/jichuntao/tmk_keyboard/tree/master/keyboard/kc60
-
Thanks MOZ. It is a lot like the GH60, not sure how to use the alt_llayouts so as it appears to support ISO and split backspace I've added all the keys - hopefully it's clear what's what from the defaults.
Please can you test the attached .py Siraj, if it works it can be added officially.
-
I finally got round to fixing my Ducky (my documentation was wrong which had me stumped) and have found a problem.
I'm using ctrl as a 'normal' mode FN with implied control ticked, that takes me to a copied layer with the insert key as a 'toggle' FN. When I swap to the toggled FN layer the key (insert, as it is again on layer 3) becomes pressed until I hit a key. This isn't a huge problem, but I was planning on using delete in the same way to go back to the default layer and that is
Also in writing this on the board I've noticed something really strange - left shift works for most letters, but pressing t or y with it outputs nothing. Seems to be because these letters are in the same matrix row. Right shift is in a row with ASDF and that seems to work as expected.
Just realised I haven't updated for a while so these issues may well have been fixed already but it's bedtime so I'll have to check tomorrow.
-
I'm having an issue with some LEDs on a handwired board.
I've wired up three LEDs, to a teensy, and the hardware tests out right. Applying 5.4V to the pin and ground to the Teensy Ground pin (bottom center) lights up the LEDs, but I can't get them to activate except for the on board Teensy light on D6.
In testing, I switched the PULLUP to PULLDOWN on my 3 LEDs, and Green and Red lit up. This confused me even more. Can you spot anything immediately obvious that might be wrong with my configuration or wiring? (Note D6 is not in use, I used it originally (dumb) and then swapped the wire out of it to D7)
# The total number of LED outputs (indicators + backlights)
num_leds = 4
# The number of LED indicators (for example, caps lock)
num_ind = 4
# The number of backlight enable modes. This counts the number of
# options available for the BL_ENABLE key. Boards without backlights
# should use the minimum value of 2.
num_bl_enab = 2
# Define the default assignments of the indicator LEDs. The length
# of this list must equal num_ind. For each LED, the first string
# is the description of the key shown in the GUI. The second string
# is the default function assigned to that LED. LED functions must
# be strings as defined in led_assignments of gui.py. Common choices
# are 'Num Lock', 'Caps Lock', 'Scroll Lock', 'Win Lock', 'Fn Active',
# 'Recording', 'Backlight', and 'Unassigned'.
led_definition = [
('Teensy', 'Recording'),
('Green', 'Fn Active'),
('White', 'Fn2 Active'),
('Red', 'Fn3 Active')
]
# Definition of LED pins. (indicators and backlights) Indicators
# must come first and be in the same order as defined in led_definition.
# LED_DRIVER_PULLUP is used when the pin is connected to the anode of
# the LED and the cathode is connected to ground.
# LED_DRIVER_PULLDOWN is used when the pin is connected to the cathode
# of the LED and the anode is connected to the power supply.
led_hardware = [
# Port Pin Direction
( REF_PORTD, 6, LED_DRIVER_PULLUP ),
( REF_PORTF, 5, LED_DRIVER_PULLUP ),
( REF_PORTC, 6, LED_DRIVER_PULLUP ),
( REF_PORTB, 2, LED_DRIVER_PULLUP )
]
# True if the board supports backlight, otherwise False
backlighting = False
# This can be used to configure different backlighting zones. Explained
# in more detail elsewhere. Length of list must equal num_bl_enab.
# Length of each tuple must equal num_leds. Tuples use the same ordering
# as led_hardware. Almost everyone should just use an all-on/all-off
# configuration. That's a list of two tuples, one with all 1s for each
# LED, the other with all 0s for each LED.
bl_modes = [
( 0, 0 ),
( 1, 1 )
]
-
Are you sure your LED anode and cathode are wired correctly? LEDs are polarised.
-
Are you sure your LED anode and cathode are wired correctly? LEDs are polarised.
Yes, when I put 5.4v on the pin and ground on the Teensy ground the LEDs light up. But I was confused when flipping the PULLUP to PULLDOWN made them turn on anyway...?
I also have yet to test if I get 5v at the pin when I press the associated key, and hope to do that soon. I'm currently operating under the assumption that this is a firmware issue
-
Just downloaded a fresh zip of version 13 and I'm happy to say the FN sticking is fixed, but the strange left shift behavior remains.
It works for most letters but pressing t, y [ or ] with it outputs nothing (these are the only printable characters on the row) Also on the same row are numberpad 4, 5 and 6 and with numberlock on 4 and 6 do not act as shifted arrows and select text, they too do nothing. Oh and there's Tab on the row, which also does nothing instead of going backwards. Right shift works as expected in all cases.
This is on the Costar firmware for the Teensy 2++ you so kindly made for me, so that may make it harder to track down? No rush :)
Below is a pic of the matrix with physical rows in colours, in case it's of any use.
More
(http://i.imgur.com/oHMzRAg.png)
-
Ok I'm back. I was on vacation and I've been preoccupied with a different project lately:
[attach=1]
I saw lots of updates on my phone. I'll try and catch up.
-
Ok I'm back. I was on vacation and I've been preoccupied with a different project lately:
(Attachment Link)
I saw lots of updates on my phone. I'll try and catch up.
That wasnt a very long Vacation metalliqaz, you need a break bro!
:p
-
I'm having an issue with some LEDs on a handwired board.
I've wired up three LEDs, to a teensy, and the hardware tests out right. Applying 5.4V to the pin and ground to the Teensy Ground pin (bottom center) lights up the LEDs, but I can't get them to activate except for the on board Teensy light on D6.
In testing, I switched the PULLUP to PULLDOWN on my 3 LEDs, and Green and Red lit up. This confused me even more. Can you spot anything immediately obvious that might be wrong with my configuration or wiring? (Note D6 is not in use, I used it originally (dumb) and then swapped the wire out of it to D7)
Okay so if you're using the Teensy to supply power to the LEDs, you want PULLUP. PULLDOWN is for when you have the LEDs connected to the power supply and the Teensy turns them on by connecting them to ground. It kinda looks like you want PULLUP, assuming that resistor in the center is connected to ground.
Your config looks good, except for the backlight modes, which should be this:
bl_modes = [
( 1, 1, 1, 1 ),
( 0, 0, 0, 0 )
]
However it shouldn't make any difference at all with your setup.
Are you sure you've got the port config correct? It looks like the LED on the left is connected to F4, not F5. Also, make sure you aren't shorting anything out. There's a lot of very close exposed wires there.
-
That wasnt a very long Vacation metalliqaz, you need a break bro!
It's my birthday and the weather was nice. I had to go enjoy it. Gotta keep making dolla bills though, so back to workin' for the man.
-
Just downloaded a fresh zip of version 13 and I'm happy to say the FN sticking is fixed, but the strange left shift behavior remains.
It works for most letters but pressing t, y [ or ] with it outputs nothing (these are the only printable characters on the row) Also on the same row are numberpad 4, 5 and 6 and with numberlock on 4 and 6 do not act as shifted arrows and select text, they too do nothing. Oh and there's Tab on the row, which also does nothing instead of going backwards. Right shift works as expected in all cases.
This is on the Costar firmware for the Teensy 2++ you so kindly made for me, so that may make it harder to track down? No rush :)
Below is a pic of the matrix with physical rows in colours, in case it's of any use.
More
Show Image
(http://i.imgur.com/oHMzRAg.png)
Have you used EK Switch Hitter or Aqua's Keytest to see what the computer is getting when you press LSHIFT+t ? Can you press t and y together?
-
Downloaded 13 tonight and it didn't make a difference until I switched to the advanced LED configuration. Then everything started working fine.
Also fixed a bad joint on a column that was causing the white LED to not work while the others worked.
Now all my layer indicator lights are working perfectly! It's like christmas over here! :p
-
Just downloaded a fresh zip of version 13 and I'm happy to say the FN sticking is fixed, but the strange left shift behavior remains.
It works for most letters but pressing t, y [ or ] with it outputs nothing (these are the only printable characters on the row) Also on the same row are numberpad 4, 5 and 6 and with numberlock on 4 and 6 do not act as shifted arrows and select text, they too do nothing. Oh and there's Tab on the row, which also does nothing instead of going backwards. Right shift works as expected in all cases.
This is on the Costar firmware for the Teensy 2++ you so kindly made for me, so that may make it harder to track down? No rush :)
Below is a pic of the matrix with physical rows in colours, in case it's of any use.
More
Show Image
(http://i.imgur.com/oHMzRAg.png)
Have you used EK Switch Hitter or Aqua's Keytest to see what the computer is getting when you press LSHIFT+t ? Can you press t and y together?
Hope you had a good birthday, sorry to have dampened it slightly with a bug :)) The other project is very shiny so not surprised it has you distracted!
Switch hitter shows exactly what I see, for better or worse - all good except left shift :(
02:27.0257 LShift (0x10, BIOS 0x2A) DOWN
02:31.0533 LShift (0x10, BIOS 0x2A) UP -> 2274ms
02:34.0043 Y (0x59, BIOS 0x15) DOWN
02:35.0057 T (0x54, BIOS 0x14) DOWN
02:35.0790 T (0x54, BIOS 0x14) UP -> 730ms
02:36.0351 Y (0x59, BIOS 0x15) UP -> 2304ms
09:00.0089 Tab (0x09, BIOS 0x0F) DOWN
09:00.0884 T (0x54, BIOS 0x14) DOWN
09:01.0352 T (0x54, BIOS 0x14) UP -> 470ms
09:01.0836 Tab (0x09, BIOS 0x0F) UP -> 1749ms
09:37.0934 Numpad 4 (0x64, BIOS 0x4B) DOWN
09:38.0574 Numpad 6 (0x66, BIOS 0x4D) DOWN
09:39.0089 T (0x54, BIOS 0x14) DOWN
09:39.0635 Y (0x59, BIOS 0x15) DOWN
09:40.0150 Y (0x59, BIOS 0x15) UP -> 505ms
09:40.0571 T (0x54, BIOS 0x14) UP -> 1473ms
09:41.0054 Numpad 6 (0x66, BIOS 0x4D) UP -> 2480ms
09:41.0491 Numpad 4 (0x64, BIOS 0x4B) UP -> 3544ms
-
Hope you had a good birthday, sorry to have dampened it slightly with a bug :)) The other project is very shiny so not surprised it has you distracted!
Switch hitter shows exactly what I see, for better or worse - all good except left shift :(
I'm not convinced there's a software bug. I have several keyboards and LSHIFT works fine, even on keys of the same row.
If I understand correctly, RSHIFT works on all the alphas, and LSHIFT works on everything except the keys in the same row. That sounds more like an electrical problem.
-
Hope you had a good birthday, sorry to have dampened it slightly with a bug :)) The other project is very shiny so not surprised it has you distracted!
Switch hitter shows exactly what I see, for better or worse - all good except left shift :(
I'm not convinced there's a software bug. I have several keyboards and LSHIFT works fine, even on keys of the same row.
If I understand correctly, RSHIFT works on all the alphas, and LSHIFT works on everything except the keys in the same row. That sounds more like an electrical problem.
I agree it makes no sense but I haven't touched the wiring since running the board for a year with Soarer's without a problem. I'll flash back to that tonight and confirm I've not somehow shorted something, not sure how it could only affect one key on the row though. Though maybe it's the column... Only two keys in the column, the other is right shift!
-
I agree it makes no sense but I haven't touched the wiring since running the board for a year with Soarer's without a problem. I'll flash back to that tonight and confirm I've not somehow shorted something, not sure how it could only affect one key on the row though. Though maybe it's the column... Only two keys in the column, the other is right shift!
Yeah we will need more data, because nothing is coming to mind that would lead to this behavior.
-
Had another look, left windows key is also on that row and that's a mod, does that work? Yes. Next I assigned right shift to the key but it acts the same as left shift. I then held 10 selected keys from all over the matrix and pressed every other key and had no problems.
Final test before grabbing food and going out: hold t and press y - all good. Still holding t press shift (assigned right shift) and t lifts at the exact same time and represses when shift is released? Strange.
15:51.0453 T (0x54, BIOS 0x14) DOWN
15:51.0874 Y (0x59, BIOS 0x15) DOWN
15:51.0974 Y (0x59, BIOS 0x15) UP -> 100ms
15:53.0656 T (0x54, BIOS 0x14) UP -> 2203ms
15:53.0656 RShift (0x10, BIOS 0x36) DOWN
15:53.0807 T (0x54, BIOS 0x14) DOWN
15:53.0807 RShift (0x10, BIOS 0x36) UP -> 150ms
15:54.0468 T (0x54, BIOS 0x14) UP -> 666ms
Will have to find where I put the config for Soarers...
-
That's good information. What if you assign a random key like PgUp to the left shift button. It has the same behavior? And if you assign shift to, like, the Caps button, I assume that all works fine as well.
Man, this still really sounds electrical to me. Seems clear that EasyAVR actually detecting an open circuit when you press the T key. I don't understand how Soarer's could work. Have you tried increasing the setup wait time?
Also can you post your board config?
-
I've tweaked nothing from defaults, it's unusable without capital T's so until this is sorted I must use another board :))
Will try other things later but for now you can have a look at the config.
Edit: Turns out Soarer's doesn't play nice with 64bit Windows or Linux (or perhaps it's the alcohol?) so I'll have to try again tomorrow
-
So I just used EasyAVR to program my Satan GH60. Very nice software, thanks a lot!
I did notice a few issues though:
- Instructions for programming firmware on Windows don't mention that after installing Atmel Flip and going into bootloader mode, you need to go to Device Manager and update the drivers for the controller from the Atmel flip "usb" folder.
- The right shift and extra key next to it (typically Fn) in the Satan GH60 "All keys" layout are switched. So instead of what looks like a Shift key I have to map the smaller key next to it.
Also is there any way to use EasyAVR to control LEDs individually? For example if I want that with the backlight in "Reactive" mode only the key I press is lit?
-
Also is there any way to use EasyAVR to control LEDs individually? For example if I want that with the backlight in "Reactive" mode only the key I press is lit?
Not currently, unless each LED is mapped to an individual pin on the controller. All the LEDs or predfined zones on most backlit boards are controlled via a single pin.
-
Also is there any way to use EasyAVR to control LEDs individually? For example if I want that with the backlight in "Reactive" mode only the key I press is lit?
Not currently, unless each LED is mapped to an individual pin on the controller. All the LEDs or predfined zones on most backlit boards are controlled via a single pin.
That's what I thought.
/_
Another question, is it possible to combine a layer toggle and num lock on/off? I have the numpad on layer 2 and when switching to that layer would like to turn num lock on and back off when changing to default layer. I figure I'd need to use the macro functionality for that but I didn't find any info on whether you can use FN keys in them.
-
That's what I thought.
/_
Another question, is it possible to combine a layer toggle and num lock on/off? I have the numpad on layer 2 and when switching to that layer would like to turn num lock on and back off when changing to default layer. I figure I'd need to use the macro functionality for that but I didn't find any info on whether you can use FN keys in them.
I'm actually planning that feature already! If you read through my Sigma project post (https://geekhack.org/index.php?topic=79589.0) you will find it mentioned. It will be integrated as I work that project.
-
That's what I thought.
/_
Another question, is it possible to combine a layer toggle and num lock on/off? I have the numpad on layer 2 and when switching to that layer would like to turn num lock on and back off when changing to default layer. I figure I'd need to use the macro functionality for that but I didn't find any info on whether you can use FN keys in them.
I'm actually planning that feature already! If you read through my Sigma project post (https://geekhack.org/index.php?topic=79589.0) you will find it mentioned. It will be integrated as I work that project.
Great news! In the meantime I'll use a Num lock on my second layer but will definitely change it to automatic when it becomes possible as I don't use that layer for anything but numpad right now.
Another thing I'd like to see is a key to close the config menu, Q for example. Now you have to back out of it all the way to the main menu AFAIK.
-
Another thing I'd like to see is a key to close the config menu, Q for example. Now you have to back out of it all the way to the main menu AFAIK.
The config menu can be used on boards that don't have alphas (i.e. numpads), so it pretty much has to use numbers. Once you get your configuration settled, it isn't really used all that often. 9-Enter-9-Enter isn't so bad, is it?
-
Good morning!
I'm de-bugging the GH-122, and some of the faults go away when I jump the appropriate pins on the Teensy++. That makes them hardware problems for me to chase.
A few problems persist even when I jump pins, which means the problem could be hardware or firmware. There are three problems affecting multiple keys in columns 18-24 (matrix columns 17-23):
#1 An extra KP_DIVIDE scan code is sent by matrix positions:
1,17; 2,17; 2,18; 2,19; 2,20; 2,22; 2,23; 6,17.
#2 Various combinations of extra 0,2,5,8 scan codes (note that those are just under the KP_DIVIDE key!) are sent by matrix positions:
2,21; 3,19; 3,20; 3,21; 3,22; 3,23; 4,17; 4,21; 5,17; 5,21; 5,22; 6,17; 6,21
#3 Extra UP, DOWN, and HOME are sent by matrix positions:
2,21; 3,17; 3,18; 3,19
I see nothing in the schematic that would explain this, however problems with the PCB or my assembly are certainly possibilities. I will proceed with hardware trouble-shooting, but if you could take a quick look at the code to make sure none of the issues are hidden in there, I'd greatly appreciate it.
Also, more of an FYI, matrix position 4,16 doesn't physically exist. The ISO Enter key uses matrix position 3,16. I'll send you some more detailed docs later today.
Thanks as always,
- Ron | samwisekoi
-
Good morning!
I'm de-bugging the GH-122, and some of the faults go away when I jump the appropriate pins on the Teensy++. That makes them hardware problems for me to chase.
A few problems persist even when I jump pins, which means the problem could be hardware or firmware. There are three problems affecting multiple keys in columns 18-24 (matrix columns 17-23):
Definitely should fix all the known hardware problems first. Who knows what effects they could have.
#1 An extra KP_DIVIDE scan code is sent by matrix positions:
1,17; 2,17; 2,18; 2,19; 2,20; 2,22; 2,23; 6,17.
#2 Various combinations of extra 0,2,5,8 scan codes (note that those are just under the KP_DIVIDE key!) are sent by matrix positions:
2,21; 3,19; 3,20; 3,21; 3,22; 3,23; 4,17; 4,21; 5,17; 5,21; 5,22; 6,17; 6,21
#3 Extra UP, DOWN, and HOME are sent by matrix positions:
2,21; 3,17; 3,18; 3,19
What are 0,2,5,8 scan codes? Also, If I understand correctly, you're saying that when you hold down any of the listed keys, the PC receives two scancodes instead of one. Is that right? If that's the case, there's really no way for the firmware to screw up that badly, so it must actually be detecting both switches. We have to figure out why. Are you absolutely sure that your diodes are installed correctly? Also, are you finding that problems are localized on PORTA? I don't have anything that uses an AT90USB128, so I haven't tested it.
I see nothing in the schematic that would explain this, however problems with the PCB or my assembly are certainly possibilities. I will proceed with hardware trouble-shooting, but if you could take a quick look at the code to make sure none of the issues are hidden in there, I'd greatly appreciate it.
Also, more of an FYI, matrix position 4,16 doesn't physically exist. The ISO Enter key uses matrix position 3,16. I'll send you some more detailed docs later today.
I created the config by eyeballing the picture of the PCB. I'm sure it has bugs in it. It would be a very good idea for you to proof-read it.
It's very frustrating trying to troubleshoot hardware I don't physically have. A half-hour job turns into a week-long endeavor. Hopefully between the two of us we can get it working soon.
-
Thanks. That was enough for now. My suspicion is poor assembly on my part, but before I got the multi-meter out I thought I'd send you that note. And yes, we've gotten both the GH36 and the JD45 (Teensy version) working, so this will be no different.
Thanks again!
- Ron | samwisekoi
-
You were right, there's some kind of hardware issue with my Ducky confirmed the easy way with a spare Teensy and a couple of diodes - if I can get a capital T out of that the board should work. I can, so it does not.
Found what looked to be left shift connected effectively to the wrong side of it's diode so moved that connection but now I don't have shift keys... This does not explain Soarer's magic and I'm no closer to a usable board but just thought I'd update you!
-
Update/second round of questions. Comments in-line and questions at the end. I am using green text because of the massive nesting, not because I am some dang L33T H@X0R.
Good morning!
I'm de-bugging the GH-122, and some of the faults go away when I jump the appropriate pins on the Teensy++. That makes them hardware problems for me to chase.
A few problems persist even when I jump pins, which means the problem could be hardware or firmware. There are three problems affecting multiple keys in columns 18-24 (matrix columns 17-23):
Definitely should fix all the known hardware problems first. Who knows what effects they could have.
Done. Replaced two diodes and one switch, and now everything from Column_1 through Column_17 is 100%. I also tested all of the diodes and circuits that are involved, and found no shorts or opens. I also replaced the diode for KP_DIVIDE, even though it tested good.
#1 An extra KP_DIVIDE scan code is sent by matrix positions:
1,17; 2,17; 2,18; 2,19; 2,20; 2,22; 2,23; 6,17.
#2 Various combinations of extra 0,2,5,8 scan codes (note that those are just under the KP_DIVIDE key!) are sent by matrix positions:
2,21; 3,19; 3,20; 3,21; 3,22; 3,23; 4,17; 4,21; 5,17; 5,21; 5,22; 6,17; 6,21
#3 Extra UP, DOWN, and HOME are sent by matrix positions:
2,21; 3,17; 3,18; 3,19
What are 0,2,5,8 scan codes?
Key press and then release events for 0, KP_2, KP_5, KP_8. Specifically Linux reads keysym 0x30, 0xffb2, 0xffb5, and 0xffb8. For example, I get all of those in addition to the correct keysym 0xffb7 when I press KP_7.
Also, If I understand correctly, you're saying that when you hold down any of the listed keys, the PC receives two scancodes instead of one. Is that right?
That is correct. Two or more.
If that's the case, there's really no way for the firmware to screw up that badly, so it must actually be detecting both switches. We have to figure out why.
Agreed on both points.
Are you absolutely sure that your diodes are installed correctly?
Yes. Visual inspection and testing with multimeter.
Also, are you finding that problems are localized on PORTA? I don't have anything that uses an AT90USB128, so I haven't tested it.
No. I am not using Port A as far as I know. B, C, D, E, and F only. Unless I don't understand the question, which is entirely possible since I had to read Teensy docs just now to even try. I'm happy to send you a Teensy++ if you like.
I see nothing in the schematic that would explain this, however problems with the PCB or my assembly are certainly possibilities. I will proceed with hardware trouble-shooting, but if you could take a quick look at the code to make sure none of the issues are hidden in there, I'd greatly appreciate it.
Also, more of an FYI, matrix position 4,16 doesn't physically exist. The ISO Enter key uses matrix position 3,16. I'll send you some more detailed docs later today.
I created the config by eyeballing the picture of the PCB. I'm sure it has bugs in it. It would be a very good idea for you to proof-read it.
Will do.
It's very frustrating trying to troubleshoot hardware I don't physically have. A half-hour job turns into a week-long endeavor. Hopefully between the two of us we can get it working soon.
Again, agreed on both points.
The problems are almost entirely isolated to the top two rows of the Navigation and Keypad cluster, and the vertical columns below PRINT and KP_DIVIDE. That makes it seem like a hardware problem, although I cannot think of a combination of shorts, opens, and bad diodes that would explain this behavior.
For example a keypress at matrix location 3,20 (KP_7) should do the following:
- Column pin E0 goes high.
- Switch and diode at 3,20 allow row pin D4 to go high,
- A scan of row pin D4 shows high, resulting in keypress and release events for KP_7
But in addition...
- C2/B1 shows high, resulting in keypress and release events for 0 (or ")" if I test while SHIFT is pressed.)
NOTE: I just tested to verify that the map for the keypad has the keypad zero key outputting KP_0. It does.
- D6/D2 shows high, resulting in keypress and release events for KP_2.
- D6/D3 shows high, resulting in keypress and release events for KP_5.
- D6/D4 shows high, resulting in keypress and release events for KP_8.
That is just one example, and I am trying to work out a combination of bad diodes, shorts, and opens that would result in those scan results. I accept that the high on E0 could escape through a bad diode, and even that the entire column under KP_DIVIDE is hosed thereby, but how does the 0) key get involved?
I'll bring my test PCB and multimeter home with me in case you have a brilliant flash or a question. The current .DAT and .HEX files are attached.
Thanks as always!
- Ron | samwisekoi
-
The problems are almost entirely isolated to the top two rows of the Navigation and Keypad cluster, and the vertical columns below PRINT and KP_DIVIDE. That makes it seem like a hardware problem, although I cannot think of a combination of shorts, opens, and bad diodes that would explain this behavior.
For example a keypress at matrix location 3,20 (KP_7) should do the following:
- Column pin E0 goes high.
- Switch and diode at 3,20 allow row pin D4 to go high,
- A scan of row pin D4 shows high, resulting in keypress and release events for KP_7
But in addition...
- C2/B1 shows high, resulting in keypress and release events for 0 (or ")" if I test while SHIFT is pressed.)
NOTE: I just tested to verify that the map for the keypad has the keypad zero key outputting KP_0. It does.
- D6/D2 shows high, resulting in keypress and release events for KP_2.
- D6/D3 shows high, resulting in keypress and release events for KP_5.
- D6/D4 shows high, resulting in keypress and release events for KP_8.
That is just one example, and I am trying to work out a combination of bad diodes, shorts, and opens that would result in those scan results. I accept that the high on E0 could escape through a bad diode, and even that the entire column under KP_DIVIDE is hosed thereby, but how does the 0) key get involved?
I'll bring my test PCB and multimeter home with me in case you have a brilliant flash or a question. The current .DAT and .HEX files are attached.
Thanks as always!
- Ron | samwisekoi
This is quite vexing. I can only come up with three ideas.
First, that you have some kind of crazy hardware problem. However this board is not very complicated at all. We can assume the Teensy is all good, so I don't think this is the problem.
Second, that you have the strobe_cols and strobe_low configured wrong. This could leave pins floating which makes it conceivable that nearby rows affect each other through inductive coupling. However, since the entire left half of your board works correctly, this is probably not the problem. Still, there are only four possibilities, watch your PMs for some test builds.
NOTE the series of events you described as "pin goes high" does not happen with the gh122 config file currently in Github. It has strobe_cols = False and strobe_low = True. That means it selects rows then reads the columns, and it selects the rows by bringing it down to 0, with all non-selected rows set to 1. Does your hardware still make sense using that logic? If not, we will have to change it.
Third, that the software is overrunning its schedule and not handling it gracefully. I had this idea because all your problems are localized to the far end of the board. For a matrix that large, it's basically guaranteed to overrun the schedule, but it shouldn't lead to problems like this. I'll review that part of the code, maybe it was damaged in the rewrite.
So thats what I have so far. Nothing like a good puzzle, right?
One final thing, if 4,16 doesn't exist, what is the correct location of ANSI enter?
-
Thanks very much. I need to grok your reply before I can make a sensible next step. The schedule overrun feels like a good fit, but let's see. I will try those builds in the morning.
I think the spreadsheet has the ANSI Enter location. ISO Enter uses the backslash switch. Verification to follow.
Thanks again,
- Ron | samwisekoi
-
OK, typing on the GH-122 once again. Build FT works great!
Here are some numpad numbers:
/*-+
789
456
123
0.
There may be some timing issues, but I want to get stabs and all keycaps on the board before declaring that to be true.
Also, I'd like to get the FT version of EKM so I can compile a complete map and test that.
Anyhow, FT is a big step forward, and I thank you very much!
- Ron | samwisekoi
p.s. For GH-122 buyers who are watching this, it looks like we will soon be good to ship. More info on that in my own thread. If you ARE lurking here, please extend your thanks to metalliqaz, without whom we would not have the firmware we need!
-
OK, typing on the GH-122 once again. Build FT works great!
Here are some numpad numbers:
/*-+
789
456
123
0.
There may be some timing issues, but I want to get stabs and all keycaps on the board before declaring that to be true.
Also, I'd like to get the FT version of EKM so I can compile a complete map and test that.
Anyhow, FT is a big step forward, and I thank you very much!
- Ron | samwisekoi
p.s. For GH-122 buyers who are watching this, it looks like we will soon be good to ship. More info on that in my own thread. If you ARE lurking here, please extend your thanks to metalliqaz, without whom we would not have the firmware we need!
The FT build is the same one you're already using. Just make a new layout and immediately build it and you should get the same file.
-
What is this FT build?
-
What is this FT build?
One of four builds I gave him with all possibilities of strobe_cols and strobe_low
-
Anyone using the Originative Ori60 willing to try the attached file.
Ori60 requires you to export the firmware as a bin file. Easy AVR recently added this functionality. Just replace the FLASH.BIN with a new FLASH.BIN generated by Easy AVR.
P.S, AFAIK the KC60 also uses the same matrix and the .py file should work for that as well.
-
@metalliqaz: Thanks dude. You are the god of firmwarez.
-
The FT build is the same one you're already using. Just make a new layout and immediately build it and you should get the same file.
Very interesting. I made a very small build of the GH-122 withou8t assigning any of the extra keys. It works better, with only the occasional KP_8 creeping in unwanted.
I'll add more key assignments to see iff perhaps we have an OOM problem. (I see a bit of key-bou8nce as well.)
The above was typed with the GH-122. Keyboard-generated extra keystrokes remain as they happened.
Thanks,
- Ron | samwisekoi8
p.s. ANSI Enter is at matrix positi8o8n (4,14). ISO Enter is at matrix positio8n (3,16).
-
So I populated the entire matrix, using just plain alphas in all of the extra po8sitio8ns. The extra KP_8 issu8e remains, and the o258258258258ccai258si258o258258258nal extra KP_DIVIDE has been added. (The lowercase "I" does thi825s. <changing keyboards>
The lowercase "i" tosses out extra KP_8, KP_2, and KP_5. It did not do that with a smaller matrix, and now it seems to happen only after typing for a little bit. Could there be a memory leak? I ran every switch through XEV and with the exception of an extra KP_8 when pressing KP_7 and a very occasional extra KP_DIVIDE, all of the keys ran clean. I will now switch back to the GH-122 and attempt to type every printable character here. (Remember, the upper row and the left bank have the alphabet.)
abcdefghijklmno
r`1234567890-=/*-
stqwertyuiop[]\7889+
uvasdfghjkl;'456
wxzxcvbnm,./123
yz0.
<switching keyboards>
So that went well. No surprises. I think that tells us that the keyboard CAN type with a full single layer, at least in a tap-tap-tap mode. Now I'll try some typing:
The qu8ick brown fox jumped over the lazy dog. The lazy dog was really ticked off by this and drafted an urgent tweet to zer followers and then updated zer Tumblr.
<switching keyboards>
OK, not bad. Just the single KP_8 tossed in, but no KP_DIVIDE or i825 strings. Shall I fill up some layers and see what happens then? Is there some way for me to monitor memory utilization? (FYI, I ordered a couple more Teensy++ for testing purposes. I can send you one, with or without a giant PCB.)
Next steps?
- Ron | samwisekoi
-
The FT build is the same one you're already using. Just make a new layout and immediately build it and you should get the same file.
Very interesting. I made a very small build of the GH-122 withou8t assigning any of the extra keys. It works better, with only the occasional KP_8 creeping in unwanted.
I'll add more key assignments to see iff perhaps we have an OOM problem. (I see a bit of key-bou8nce as well.)
The above was typed with the GH-122. Keyboard-generated extra keystrokes remain as they happened.
Thanks,
- Ron | samwisekoi8
p.s. ANSI Enter is at matrix positi8o8n (4,14). ISO Enter is at matrix positio8n (3,16).
Well, this certainly complicates things. If the mapping affects how it detects keys, then I am going to need some new ideas.
-
Next steps?
Can you make sure you're running the latest version? Your "GH-122 All Keys 160420a.hex" build looks nothing like my test builds.
-
Next steps?
Can you make sure you're running the latest version? Your "GH-122 All Keys 160420a.hex" build looks nothing like my test builds.
I was not. I was on 2_01_08; retrying with 2_01_13 now.
-
Next steps?
Can you make sure you're running the latest version? Your "GH-122 All Keys 160420a.hex" build looks nothing like my test builds.
I was not. I was on 2_01_08; retrying with 2_01_13 now.
Actually, can you use this one please? This has a fixed GH122 layout. (ANSI and ISO Enter key)
https://www.dropbox.com/s/vruj5qzl48uaovo/easykeymap_windows_2_01_13b.zip?dl=0
-
Will download and use the new one, but 2.01.13 seemed to work. I am typing this on the GH-122.
Woo-hoo! I'll build a more complicated map using 13b, but8 whatever changed since 2.01.08 seems to have made the Teensy++ much happier!
Thanks VERY MUCH!
- Ron | samwisekoi
-
but8
Not entirely happy, it would seem...
In other news I just tested my Sigma board for the first time. Works perfectly. *sigh*
-
but8
Not entirely happy, it would seem...
In other news I just tested my Sigma board for the first time. Works perfectly. *sigh*
Go Si888gma! Oh, look. Lots of extra 8s. That i8s good lu8ck i8n Chi8nese.
INTERESTINGLY, IT DOESN'T HAPPEN WHEN I HAVE CAPS LOCK ON. ALSO, FYI, THAT IS A KP_8 BEING TOSSED AFTER THE "i" SO IT IS AT LEAST COMING FRO8M THE SAME ROW. OH LOOK - ANOTHER 8 AFTER THE O!
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii <-- That was typed with CAPS plu8s SHIFT.
Speed seems to matter a bu8nch. Also, this only happens to letters on the same row as KP_8. And i8mntermi8ttently - becau8se that i8s the best ki8nd of bu8g.
Shall I do a gratuitous replacement of the KP_8 diode?
- Ron | samwisekoi
-
In other news I just tested my Sigma board for the first time. Works perfectly. *sigh*
Not sure if that's a sigh of disappointment that you have no tweaking to do or of delight because your shiny new project works - congrats either way :)
-
In other news I just tested my Sigma board for the first time. Works perfectly. *sigh*
Not sure if that's a sigh of disappointment that you have no tweaking to do or of delight because your shiny new project works - congrats either way :)
Yeah that came off wrong. I'm glad my project is working but I'm frustrated that the good bugs are always on boards that I don't have.
-
In other news I just tested my Sigma board for the first time. Works perfectly. *sigh*
Not sure if that's a sigh of disappointment that you have no tweaking to do or of delight because your shiny new project works - congrats either way :)
Yeah that came off wrong. I'm glad my project is working but I'm frustrated that the good bugs are always on boards that I don't have.
I got it!
-
What was the change between 13 and 13b? More specifically, should I go back to 13?
- Ron | samwisekoi
-
What was the change between 13 and 13b? More specifically, should I go back to 13?
- Ron | samwisekoi
It fixed the mapping of the Enter keys. Don't go back to the older version, this is the future, man.
I noticed the code wasn't disabling JTAG for the AT90USB1286 builds. It's probably not going to help, but please try this newest version (13c):
https://www.dropbox.com/s/1j6xxz94uw74s0v/easykeymap_windows_2_01_13c.zip?dl=0
-
Watching all this debugging with great anticipation. Thanks samwisekoi for thoroughly testing and metalliqaz for all the countless hours put into easy avr.
-
Thanks spam and metal'z .
Trying to get some altitude over this problem, I wonder if we've finally hit the scale where analog circuitry starts to exhibit analog side effects. We treat modern keyboards like digital devices, but really they are not. Does an almost two square foot board need a ground plane, thicker traces, or even inductive shielding? If so, we've entered Haata land.
Alternatively, it may just be JTAG. :))
Just some Thursday night pondering.
- Ron ¦ samwisekoi
-
What happens when you connect a matrix column to two pins? If all the connections are in place - nothing out of the ordinary. If you scan the matrix a certain way (Soarer's) - nothing out of the ordinary. If you scan it the opposite way (EasyAVR) and one switch is only connected to one of the pins that switch misbehaves!
Turns out my shift key's diode connection was not connected to the other diode in it's row (right shift) and as they're nowhere near each other newbie me ran a second wire to the Teensy. Newbie me wondered why anyone would design a matrix with just two keys in a row/column when there were a couple of candidates with those positions empty and remembers checking extensively before accepting that they just did, but newbie me failed - there was a connection, and both Shift keys should be in column 10 as pictured before.
Sorry for wasting a very small fraction of your time metalliqaz, and thanks for being so insistent it was a hardware problem - I have learned another possible symptom of a matrix short because of it :)
Going to add a couple more indicator LEDs while I have it open then will test if my non-huge matrix exhibits any strangeness as it's probably the only other EasyAVR'd AT90USB1286 board in existence other than sam's.
-
Thanks spam and metal'z .
Trying to get some altitude over this problem, I wonder if we've finally hit the scale where analog circuitry starts to exhibit analog side effects. We treat modern keyboards like digital devices, but really they are not. Does an almost two square foot board need a ground plane, thicker traces, or even inductive shielding? If so, we've entered Haata land.
Alternatively, it may just be JTAG. :))
Just some Thursday night pondering.
- Ron ¦ samwisekoi
To be honest, at 5v and sub-kHz frequencies, we really don't have much to worry about. If you try to read floating pins then you can expect it to go haywire, but otherwise I expect it to be solid. If there is an abnormally large load on the pins, then increasing the matrix setup wait time in the config console would take care of it. You should try that, by the way, in addition to the PORTF fix in 13c.
Quick question. When you get the phantom KP8 keypress, does it stay "on" as long as you hold the other key, or is it a fleeting scancode that shows up and immediately disappears?
-
What happens when you connect a matrix column to two pins? If all the connections are in place - nothing out of the ordinary. If you scan the matrix a certain way (Soarer's) - nothing out of the ordinary. If you scan it the opposite way (EasyAVR) and one switch is only connected to one of the pins that switch misbehaves!
Turns out my shift key's diode connection was not connected to the other diode in it's row (right shift) and as they're nowhere near each other newbie me ran a second wire to the Teensy. Newbie me wondered why anyone would design a matrix with just two keys in a row/column when there were a couple of candidates with those positions empty and remembers checking extensively before accepting that they just did, but newbie me failed - there was a connection, and both Shift keys should be in column 10 as pictured before.
Sorry for wasting a very small fraction of your time metalliqaz, and thanks for being so insistent it was a hardware problem - I have learned another possible symptom of a matrix short because of it :)
Going to add a couple more indicator LEDs while I have it open then will test if my non-huge matrix exhibits any strangeness as it's probably the only other EasyAVR'd AT90USB1286 board in existence other than sam's.
I'm having a hard time visualizing what you've got over there, but if it is working better I'm thrilled!
-
I'm having a hard time visualizing what you've got over there, but if it is working better I'm thrilled!
Have you not seen my wonderous Ducky? This was my introduction to mech's, I bought it with a couple of broken switches and a break in the matrix and fixed it up. The matrix is a little bit crazy as you've seen, slightly less so following today's revelation but why they chose to put F5 on a row with two 'shift's, two 'control's and pause/break will forever remain a mystery! Physically it looks quite like this, but with more spiderweb...
More
(http://i.imgur.com/FZ3yslz.jpg)
First problem found - qwertyuiop][ :))
I think this post demonstrates that typing on the primary layer appears to work correctly, the only unused letter seems to be Q and it too work just fine. I can even do a capital T using just my left hand so a definite improvement!
Still not convinced that the layers are playing nicely but that will check and confirm before I trouble you with it.
Thanks again for your help!
-
Quick question. When you get the phantom KP8 keypress, does it stay "on" as long as you hold the other key, or is it a fleeting scancode that shows up and immediately disappears?
OK, re-built the existing .dat file in 13c. Seems worse. Here is a snippet:
Easy Keymap v2.01.13c/GH-122.2016 160422aE258
This is worse, or so it seems. Maybe not.
Just on the nav/numpad block, I guess.
257825788888888888888825788888888888888888888888888882578888888888888888888888888888825788888888888888888888888888888
That last bit was to test the run-on KP_8 problem when I kept the KP_7 key held down. I had not tried that before, but there you go. Picked up some KP_2 and KP_5 action with this build.
No issues with the main board as far as I can see.
So I did this:
increasing the matrix setup wait time in the config console would take care of it. You should try that
And settings of 10, 50, 200, and 1, all made the problem worse.
Should I re-do the .dat file from scratch each time your version is updated? Also, should I replace some diodes for luck? KP_2, KP_5, and KP_8 come to mind.
Thanks again,
- Ron | samwisekoi
-
What level of backlighting support (and modes?) are available on handwired teensy boards?
Looked through the sauce and didn't really grok how it applied to handwired boards... Thanks!
-
You were sad to have no bugs so here's one that should be easy to replicate, though probably not as fun to fix.
Assign key 1 as a normal FN
On layer 1 assign key 2 as toggle FN 2
On layer 2 assign key 1 as normal FN3
On layer 3 assign key 2 to a key which you don't mind getting stuck
Hold key 1, press key 2, release both. Repeat.
I set up QWERTY and Colemak layers with a copy of each to use with an FN (implied Ctrl) and use Insert on the QWERTY copy to go to Colemak and Delete on the Colemak copy for QWERTY, but on pressing Insert in an attempt to switch back my busy terminal was filled with ^[[2~ (Insert) which alerted me to the problem. Why not just have a "swap" switch? There will be more layouts/layers, don't want to have to cycle through them all. The current layout's direct switch will be left as it's default key as simulated above.
-
What level of backlighting support (and modes?) are available on handwired teensy boards?
Looked through the sauce and didn't really grok how it applied to handwired boards... Thanks!
What components are you handwiring? Anything that can be done on a PCB can in theory be handwired, the firmware doesn't know or care :)
-
What components are you handwiring? Anything that can be done on a PCB can in theory be handwired, the firmware doesn't know or care :)
I guess my question is more related to what Easy AVR supports... easily... ^-^
If I wire a 5v LED strip to one of the pins and indicate it as a backlight correctly, can I just assign a key to SCANCODE_BL_MODE and flip through the... modes? What modes? The docs say the zones are explained elsewhere, but I haven't been able to find that documentation, or do zones not apply to handwired boards?
Forgive my ignorance, just not familiar with how the backlights are programmed.
-
What components are you handwiring? Anything that can be done on a PCB can in theory be handwired, the firmware doesn't know or care :)
I guess my question is more related to what Easy AVR supports... easily... ^-^
If I wire a 5v LED strip to one of the pins and indicate it as a backlight correctly, can I just assign a key to SCANCODE_BL_MODE and flip through the... modes? What modes? The docs say the zones are explained elsewhere, but I haven't been able to find that documentation, or do zones not apply to handwired boards?
Forgive my ignorance, just not familiar with how the backlights are programmed.
It should be documented, but it isn't. I haven't got around to writing it. There is a lot to explain, so if you just post your planned hardware, I can give you the correct config. For backlighting in particular, you can look at the KMAC, Orion, and Sigma config files for an idea of what it does.
-
You were sad to have no bugs so here's one that should be easy to replicate, though probably not as fun to fix.
Assign key 1 as a normal FN
On layer 1 assign key 2 as toggle FN 2
On layer 2 assign key 1 as normal FN3
On layer 3 assign key 2 to a key which you don't mind getting stuck
Hold key 1, press key 2, release both. Repeat.
I set up QWERTY and Colemak layers with a copy of each to use with an FN (implied Ctrl) and use Insert on the QWERTY copy to go to Colemak and Delete on the Colemak copy for QWERTY, but on pressing Insert in an attempt to switch back my busy terminal was filled with ^[[2~ (Insert) which alerted me to the problem. Why not just have a "swap" switch? There will be more layouts/layers, don't want to have to cycle through them all. The current layout's direct switch will be left as it's default key as simulated above.
What the hell are you people doing to me? Switching back and forth between Colemak and Qwerty... are you insane? I can't even parse out this mad science.
I'll look into it but there already is "swap": it's a FN key in toggle mode. If you think about it, it's the same thing.
-
You were sad to have no bugs so here's one that should be easy to replicate, though probably not as fun to fix.
Assign key 1 as a normal FN
On layer 1 assign key 2 as toggle FN 2
On layer 2 assign key 1 as normal FN3
On layer 3 assign key 2 to a key which you don't mind getting stuck
Hold key 1, press key 2, release both. Repeat.
I just set this up in my Zeta and it works correctly. There must be something more to your config than this.
-
Quick question. When you get the phantom KP8 keypress, does it stay "on" as long as you hold the other key, or is it a fleeting scancode that shows up and immediately disappears?
OK, re-built the existing .dat file in 13c. Seems worse. Here is a snippet:
Easy Keymap v2.01.13c/GH-122.2016 160422aE258
This is worse, or so it seems. Maybe not.
Just on the nav/numpad block, I guess.
257825788888888888888825788888888888888888888888888882578888888888888888888888888888825788888888888888888888888888888
That last bit was to test the run-on KP_8 problem when I kept the KP_7 key held down. I had not tried that before, but there you go. Picked up some KP_2 and KP_5 action with this build.
No issues with the main board as far as I can see.
So I did this:
increasing the matrix setup wait time in the config console would take care of it. You should try that
And settings of 10, 50, 200, and 1, all made the problem worse.
Should I re-do the .dat file from scratch each time your version is updated? Also, should I replace some diodes for luck? KP_2, KP_5, and KP_8 come to mind.
Thanks again,
- Ron | samwisekoi
We will get this, we just have to narrow the solution space.
PM'ing two test builds. Please let me know how they work. One only implements the normal fullsize keyboard sections of the layout. If that works then the problem is with the JUMBO build. The second implements only the problematic right side of the keyboard. If that works then there is some error in the matrix scan.
-
It should be documented, but it isn't. I haven't got around to writing it. There is a lot to explain, so if you just post your planned hardware, I can give you the correct config. For backlighting in particular, you can look at the KMAC, Orion, and Sigma config files for an idea of what it does.
Ok I think I'm following. The modes are a list of possible combinations of LEDs including indicators. All 1s is all LEDs active and all 0s is none active. Are on and off the only states supported? While looking through the docs I read about breathing and decay modes, but wondered how you could do those with only a teensy going high or low.
-
Ok I think I'm following. The modes are a list of possible combinations of LEDs including indicators. All 1s is all LEDs active and all 0s is none active. Are on and off the only states supported? While looking through the docs I read about breathing and decay modes, but wondered how you could do those with only a teensy going high or low.
The way I think it works is, the modes represents, which "zones" or LEDS to enable. The system checks the tuple consisting of binary values, if it's a
- 0 and an indicator LED, then it's state is governed by it's assignment
- 0 and not an indicator LED, then it is turned off
- 1 and irrespective of indicator or not, it is configured as a backlight LED
Backlight LEDs/zones have different modes, such as on, off, breathing, decay, reactive. This is done using PWM control. Usually people use a transistor as a relay to control the LEDs.
-
The way I think it works is, the modes represents, which "zones" or LEDS to enable. The system checks the tuple consisting of binary values, if it's a
- 0 and an indicator LED, then it's state is governed by it's assignment
- 0 and not an indicator LED, then it is turned off
- 1 and irrespective of indicator or not, it is configured as a backlight LED
Backlight LEDs/zones have different modes, such as on, off, breathing, decay, reactive. This is done using PWM control. Usually people use a transistor as a relay to control the LEDs.
Just tested with a one LED board, so I wasn't able to test the Indicator vs backlight modes states, but confirmed the backlight on/off, dimmer, and standard modes.
How does the dimmer work? Is it a strobe? Or should I worry about choosing a particular resistor value?
-
Just tested with a one LED board, so I wasn't able to test the Indicator vs backlight modes states, but confirmed the backlight on/off, dimmer, and standard modes.
How does the dimmer work? Is it a strobe? Or should I worry about choosing a particular resistor value?
MOZ is mostly correct. The firmware supports multiple modes, zones, and dimmer levels.
Modes are the behavior of the backlight LEDs. There is On, Off, Breathing, and Reactive modes.
Zones are areas of the keyboard. For example, my keyboard allows you to turn on the backlights of the alphas, mods, and Function keys separately.
Dimmer levels only take effect for zones that are currently enabled and when mode is set to On.
The array in the config file contains 1 or 0 (true or false) for each LED output, including indicators and backlight pins. Indicators always act as assigned, but if they are assigned to "backlight", then this array is used to tell the firmware which zone they apply to. In my Zeta/Sigma, they all part of the mods zone.
Almost everyone should just keep it simple. All on and all off. Don't worry about it.
Choose your resistor value for your desired max LED brightness. Don't worry about the dimming, the firmware will take care of that by pulsing it on and off very quickly.
-
MOZ is mostly correct. The firmware supports multiple modes, zones, and dimmer levels.
Modes are the behavior of the backlight LEDs. There is On, Off, Breathing, and Reactive modes.
Zones are areas of the keyboard. For example, my keyboard allows you to turn on the backlights of the alphas, mods, and Function keys separately.
Dimmer levels only take effect for zones that are currently enabled and when mode is set to On.
The array in the config file contains 1 or 0 (true or false) for each LED output, including indicators and backlight pins. Indicators always act as assigned, but if they are assigned to "backlight", then this array is used to tell the firmware which zone they apply to. In my Zeta/Sigma, they all part of the mods zone.
Almost everyone should just keep it simple. All on and all off. Don't worry about it.
Choose your resistor value for your desired max LED brightness. Don't worry about the dimming, the firmware will take care of that by pulsing it on and off very quickly.
Interesting, so if I were to do an RGB strip I would be able to wire the R, G, and B to separate pins and through zones define color combinations, but not individual pin brightness/pulsing/dimming?
-
MOZ is mostly correct. The firmware supports multiple modes, zones, and dimmer levels.
Modes are the behavior of the backlight LEDs. There is On, Off, Breathing, and Reactive modes.
Zones are areas of the keyboard. For example, my keyboard allows you to turn on the backlights of the alphas, mods, and Function keys separately.
Dimmer levels only take effect for zones that are currently enabled and when mode is set to On.
The array in the config file contains 1 or 0 (true or false) for each LED output, including indicators and backlight pins. Indicators always act as assigned, but if they are assigned to "backlight", then this array is used to tell the firmware which zone they apply to. In my Zeta/Sigma, they all part of the mods zone.
Almost everyone should just keep it simple. All on and all off. Don't worry about it.
Choose your resistor value for your desired max LED brightness. Don't worry about the dimming, the firmware will take care of that by pulsing it on and off very quickly.
Interesting, so if I were to do an RGB strip I would be able to wire the R, G, and B to separate pins and through zones define color combinations, but not individual pin brightness/pulsing/dimming?
That's right.
-
hey metalliqaz, slight update.
I was trying to tweak my debounce and matrix wait times.
So debounce 20, matrix wait 60 still had the doubles and delayed hits.
Worked matrix up to 80, now I'm at 100 and the typos have dropped drastically.
It's been over a week now I believe and Im getting 0-3 typos a day.
Also the letter H and spaces would be the most typoed. I haven't had a single H yet. Space is a bit random still.
Again I am a bit puzzled as it must be tied into the way I type somehow.
At home on my razer blackwidow cherry mx blues I get some of the typos as well. But if so I think its only rare cases like letter a coming one more time later.
-
Finally got my GH60 Satan in-house. Dumped Easy AVR on the board and all is well!
Thanks everyone for the effort to get this PCB working - loving it! :)
-
Finally a new feature. With the next release you will be able to program your board without leaving the keymapper application.
This thanks to MOZ's development for his upcoming project.
[attachimg=1]
-
It currently supports Teensy loader, Flip, and dfu-programmer. When the new version is released, some testing on other platforms would be appreciated.
-
Yeay, this is exciting. I'll test it out today.
-
Anyone using the Originative Ori60 willing to try the attached file.
Ori60 requires you to export the firmware as a bin file. Easy AVR recently added this functionality. Just replace the FLASH.BIN with a new FLASH.BIN generated by Easy AVR.
P.S, AFAIK the KC60 also uses the same matrix and the .py file should work for that as well.
Tried it out on my kc60, no dice there. If I can assist let me know. For the most part I have no idea what I'm doing, but I can at least flash firmware.
Top row after flashing looks like... 1 | esc | 2 | 6 | 7 | 8 | 5 | + | BS | 9 | 0 | 3 | 4 | -
-
Version 2.3.1 is released. Download here (https://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware#Downloads)
Hopefully there's no major screw-ups
-
Yeay, this is exciting. I'll test it out today.
When you're right you're right. I haven't used Flip since this feature was added. All I do is reprogram from within the tool. This is so much better. Haven't updated the docs though.
-
Linux tester reporting in, I tried to use the built in dfu-programmer to flash my GH60 and it failed with the error below. Same error when run as root or standard user, and it's failing before erasing so it's not the firmware it cant find. The path/command printed at the bottom of the programming box is correct.
(http://i.imgur.com/feg1sks.png)
I also tried flashing my Ducky (Teensy 2.0++) and that also failed with a "can't find teensy_loader_cli executabe" popup, which is to be expected as it's not installed as I run the gui version from my download folder. Looking around it seems the cli version is only distributed as source code so I think the Easy option is to use the standalone gui version, but if you want me to test let me know where it's expecting it to be and I will :)
Unwanted sidenote, I still have the sticky key on layer swap problem on my Ducky with the new version but can't replicate it on my GH60. I'll just have to use the same key as toggle both ways, it's not the end of the world!
-
Is there any way to use this on a clueboard? Would make my life a bit easier (as I'm using this on my other keyboards)
-
Is there any way to use this on a clueboard? Would make my life a bit easier (as I'm using this on my other keyboards)
What is a clueboard?
The firmware supports pretty much any keyboard that is built with an AVR USB microcontroller. So, for example, ATmega32U4 from the Teensy or AT90USB1286 from the Teensy++. If your favorite board has a compatible chip, then it can be supported if an appropriate config file is created.
I have been known to add support for other boards when asked, but I really don't have a lot of time these days, so you'll have to provide me the hardware specs for the layout, matrix, and leds.
-
Is there any way to use this on a clueboard? Would make my life a bit easier (as I'm using this on my other keyboards)
Should be doable, however the RGB LEDs on the newer version will not work (Support coming soon). You can get the hardware specs here, https://github.com/skullydazed/qmk_firmware/tree/master/keyboard and then use the instructions in handwire.py to add support for the Clueboard. Don't forget to raise a pull request to add it to the main repo once you've tested it and it works perfectly.
-
There is a pull request to add RGB, but it will take me a little while to review it
-
There is a pull request to add RGB, but it will take me a little while to review it
I saw that, it looks good for RGB backlighting as it very smartly uses keyboard-layout-editor to set the colors, but I'm not too sure for things like the LEDs under the PCB like in the Clueboard, some K-customs, the couple of boards I'm working on, etc. I know it can be used with a workaround, but meh.
-
Is there any way to use this on a clueboard? Would make my life a bit easier (as I'm using this on my other keyboards)
Should be doable, however the RGB LEDs on the newer version will not work (Support coming soon). You can get the hardware specs here, https://github.com/skullydazed/qmk_firmware/tree/master/keyboard and then use the instructions in handwire.py to add support for the Clueboard. Don't forget to raise a pull request to add it to the main repo once you've tested it and it works perfectly.
Thanks, I don't currently have any RGB leds set up so it should work fine.
-
Linux tester reporting in, I tried to use the built in dfu-programmer to flash my GH60 and it failed with the error below. Same error when run as root or standard user, and it's failing before erasing so it's not the firmware it cant find. The path/command printed at the bottom of the programming box is correct.
Show Image
(http://i.imgur.com/feg1sks.png)
I also tried flashing my Ducky (Teensy 2.0++) and that also failed with a "can't find teensy_loader_cli executabe" popup, which is to be expected as it's not installed as I run the gui version from my download folder. Looking around it seems the cli version is only distributed as source code so I think the Easy option is to use the standalone gui version, but if you want me to test let me know where it's expecting it to be and I will :)
Unwanted sidenote, I still have the sticky key on layer swap problem on my Ducky with the new version but can't replicate it on my GH60. I'll just have to use the same key as toggle both ways, it's not the end of the world!
So I don't really have any way to troubleshoot what's going on over there. I suspect I did something with the assembly of paths that isn't compatible with non-Windows platforms. Unfortunately, though I have a linux PC, it is headless and doesn't run X. So, uh... I dunno.
-
If I wanted to use this firmware, but I wanted to write the USB keystroke buffer out via wireless radio instead of over USB, how hard (or possible?) would that be to do?
Details: My Razer TE Chroma broke (mini-usb connector) and Razer told me to **** right off. So now I've picked up an entirely new electronics hobby in the process of resurrecting the keyboard with hand-wiring and a custom controller. I use my PC(s) via couch or bed (back issues) 100% - haven't sat at a desk in years.
My plan right now is to wire the switches to a 6x15 matrix on a Teensy++, along with 3 PWM pins to for the three color channels of the RGB leds (wired in parallel, through a transistor) and 6 pins dedicated to a nRF24L01+ RF radio. The Teensy++ takes care of processing the switch input, LEDs and whatever, then sends the currently pressed button over radio to the receiver board (either a Teensy 3.2 or an Arduino Pro Micro, also outfitted with an nRF24L01+). The receiver will just run a dead simple sketch - read keys over radio, spit them out over USB.
I already know that all the wireless stuff works. I've built some simple proof of concept code that sends keys to the Teensy 3.2 over RF, which sends them over USB to windows. It works fine. I'm also a programmer, and my original thought was to write everything myself. But if I can use one of the various custom firmwares out there I will save sooooooooo much time, and they're better than anything I can come up with. And this one seems to handle RGB leds a little better than the others. But, that won't do me any good if it is impossible, or unreasonably difficult, to integrate wireless into the solution.
I'm still pretty new to working with microcontrollers. I'm pretty comfortable writing arduino sketches, but I don't know anything about writing and burning custom firmware. My alternative was going to be to start with and modify something simpler, like https://github.com/jetpacktuxedo/keyboard.
-
Is there any way to use this on a clueboard? Would make my life a bit easier (as I'm using this on my other keyboards)
Should be doable, however the RGB LEDs on the newer version will not work (Support coming soon). You can get the hardware specs here, https://github.com/skullydazed/qmk_firmware/tree/master/keyboard and then use the instructions in handwire.py to add support for the Clueboard. Don't forget to raise a pull request to add it to the main repo once you've tested it and it works perfectly.
I was trying to use the handwire section, but it seems that the rows are limited to less than what the clueboard uses. Confused as to what I need to do. Also the diodes are the opposite of the handwire set up, so I'd have to switch rows and columns, correct?
-
Is there any way to use this on a clueboard? Would make my life a bit easier (as I'm using this on my other keyboards)
Should be doable, however the RGB LEDs on the newer version will not work (Support coming soon). You can get the hardware specs here, https://github.com/skullydazed/qmk_firmware/tree/master/keyboard and then use the instructions in handwire.py to add support for the Clueboard. Don't forget to raise a pull request to add it to the main repo once you've tested it and it works perfectly.
I was trying to use the handwire section, but it seems that the rows are limited to less than what the clueboard uses. Confused as to what I need to do. Also the diodes are the opposite of the handwire set up, so I'd have to switch rows and columns, correct?
5x15 will fit in the tkl firmware option at the top (default is 60%) and diodes are set using strobe_cols and strobe_low so no need to swap rows/cols. Not at a computer now but let me know if you need more detail and I'll fire one up :)
-
Is there any way to use this on a clueboard? Would make my life a bit easier (as I'm using this on my other keyboards)
Should be doable, however the RGB LEDs on the newer version will not work (Support coming soon). You can get the hardware specs here, https://github.com/skullydazed/qmk_firmware/tree/master/keyboard and then use the instructions in handwire.py to add support for the Clueboard. Don't forget to raise a pull request to add it to the main repo once you've tested it and it works perfectly.
I was trying to use the handwire section, but it seems that the rows are limited to less than what the clueboard uses. Confused as to what I need to do. Also the diodes are the opposite of the handwire set up, so I'd have to switch rows and columns, correct?
5x15 will fit in the tkl firmware option at the top (default is 60%) and diodes are set using strobe_cols and strobe_low so no need to swap rows/cols. Not at a computer now but let me know if you need more detail and I'll fire one up :)
According to this, clueboard has 10 Rows, 8 Columns
https://github.com/skullydazed/qmk_firmware/blob/master/keyboard/clueboard2/config.h
-
Is there any way to use this on a clueboard? Would make my life a bit easier (as I'm using this on my other keyboards)
Should be doable, however the RGB LEDs on the newer version will not work (Support coming soon). You can get the hardware specs here, https://github.com/skullydazed/qmk_firmware/tree/master/keyboard and then use the instructions in handwire.py to add support for the Clueboard. Don't forget to raise a pull request to add it to the main repo once you've tested it and it works perfectly.
I was trying to use the handwire section, but it seems that the rows are limited to less than what the clueboard uses. Confused as to what I need to do. Also the diodes are the opposite of the handwire set up, so I'd have to switch rows and columns, correct?
5x15 will fit in the tkl firmware option at the top (default is 60%) and diodes are set using strobe_cols and strobe_low so no need to swap rows/cols. Not at a computer now but let me know if you need more detail and I'll fire one up :)
According to this, clueboard has 10 Rows, 8 Columns
https://github.com/skullydazed/qmk_firmware/blob/master/keyboard/clueboard2/config.h
I looked at Clueboard 1 - unusual for a design to change that much but this one did!
In that case you'll need the COSTAR firmware which is 8 rows and lots of columns, and you will need to swap them :thumb:
-
First of all, thanks to metalliqaz for developing this fantastic tool.
And now, my question: How can I map a key with "special" latin character (like ñ)?.
I have found some promising "encoding" files inside "library.zip", but I dont know how to use them... :-[
Thanks in advance!.
-
First of all, thanks to metalliqaz for developing this fantastic tool.
And now, my question: How can I map a key with "special" latin character (like ñ)?.
I have found some promising "encoding" files inside "library.zip", but I dont know how to use them... :-[
Thanks in advance!.
If your keyboard is set to Spanish in your operating system then the ; key will work, what the keyboard sends is the same keycode for all languages which the computer converts to a letter or character.
If you use another layout you could use a macro to hold alt and press the numbers to get one.
How would you usually type it?
-
First of all, thanks to metalliqaz for developing this fantastic tool.
And now, my question: How can I map a key with "special" latin character (like ñ)?.
I have found some promising "encoding" files inside "library.zip", but I dont know how to use them... :-[
Thanks in advance!.
If your keyboard is set to Spanish in your operating system then the ; key will work, what the keyboard sends is the same keycode for all languages which the computer converts to a letter or character.
If you use another layout you could use a macro to hold alt and press the numbers to get one.
How would you usually type it?
Thanks!
Ups... Perfect!. I was confused because when I program code I usually set the language of my keyboard to english international (the characters are better placed). I was trying to insert the ñ character using english languaje. :confused:
So... Which scancode is the corresponding one to the key "<>" placed on the right of the left_shift (in ISO layout)? And the one corresponding to the key "ç" placed on the left of the enter key?.
EDIT: I found the scancodes!. They are name as "NON_US_...". Thanks suicidal_orange!
-
So... Which scancode is the corresponding one to the key "<>" placed on the right of the left_shift (in ISO layout)? And the one corresponding to the key "ç" placed on the left of the enter key?.
The names given are for UK ISO so NON_US_BACKSLASH... is next to shift and NON_US_HASHMARK... is next to enter :thumb:
-
So... Which scancode is the corresponding one to the key "<>" placed on the right of the left_shift (in ISO layout)? And the one corresponding to the key "ç" placed on the left of the enter key?.
The names given are for UK ISO so NON_US_BACKSLASH... is next to shift and NON_US_HASHMARK... is next to enter :thumb:
Thanks a lot!
-
Quick question. I'm in the process of configuring my own layout at the moment for a Satan PCB. When I open the default layout for the Satan the 4 keys next to the space bar is R_Alt, R_WIN, App and R_Ctrl. What is the App key? Is this the same as the Function key like on my Shine 5 or is the App key the context menu like a Windows right click??
-
App key is the context menu item key.
-
I'm having an issue with my Satan GH60. It seems that I can only use the first 4 layers + Fn. I tried making a 5th layer but it seems changing to it doesn't work. Likewise any other layer beyond the first 4 doesn't activate. Is this a limitation of the PCB? I'm using the latest version of EasyAVR.
-
Interesting, I've only used 4 layers including default - will try more now. All the boards use the same chip so it should work on all or none...
-
I'm having an issue with my Satan GH60. It seems that I can only use the first 4 layers + Fn. I tried making a 5th layer but it seems changing to it doesn't work. Likewise any other layer beyond the first 4 doesn't activate. Is this a limitation of the PCB? I'm using the latest version of EasyAVR.
There is no limitation on number of layers on any board. There is a limitation on the number of active layers at any one given time. That limit is 4. (done to save RAM)
You should be able to access any of the 10 layers, but not all at the same time.
-
Just checked and all layers work perfectly.
Just to clarify, by 4 layers you mean holding 4 'normal' FN keys or if you toggle through layers?
-
If I power up the keyboard I should have only default and Fn layers active, right?
-
If I power up the keyboard I should have only default and Fn layers active, right?
Not 100% but as metalliqaz didn't correct me I think it works like this:
When powered on only the default layer will be active. Hold FN and that layer will also be active, also hold FN2 and you've got three active layers. Adding FN3 would make four active layers so you can't press an FN key on that layer.
If you use an FN set to 'toggle' mode the counter would reset with that layer being the first active layer.
-
If I power up the keyboard I should have only default and Fn layers active, right?
Only one layer is ever "active" at a time
-
I have been totally absent for the last week, because of DOOM. Not sure how long it will take me to get tired of that game, but it hasn't happened yet. Doesn't really leave any time for other hobbies...
-
hahahahahahahahaha........
-
I might've dun goofed. I just tried flashing my first firmware to a Pegasus Hoof on my Filco MJ2. For some reason most of the buttons on the bottom row are unresponsive - and I can't seem to get it back into bootmode (I programmed pause to act as boot). Did I just brick it?
Edit: nevermind, got it back into boot. Still having issues with everything on the two lower rows. The only keys that work are b,n,-,shift it seems. Even when I flashed a default firmware.
-
I might've dun goofed. I just tried flashing my first firmware to a Pegasus Hoof on my Filco MJ2. For some reason most of the buttons on the bottom row are unresponsive - and I can't seem to get it back into bootmode (I programmed pause to act as boot). Did I just brick it?
Edit: nevermind, got it back into boot. Still having issues with everything on the two lower rows. The only keys that work are b,n,-,shift it seems. Even when I flashed a default firmware.
Did you flash a Hoof v1 firmware on a v2 board (or vice versa) by any chance? The pins used are different and the position of the keys in the matrix are very different so that certainly wouldn't work well...
-
I might've dun goofed. I just tried flashing my first firmware to a Pegasus Hoof on my Filco MJ2. For some reason most of the buttons on the bottom row are unresponsive - and I can't seem to get it back into bootmode (I programmed pause to act as boot). Did I just brick it?
Edit: nevermind, got it back into boot. Still having issues with everything on the two lower rows. The only keys that work are b,n,-,shift it seems. Even when I flashed a default firmware.
Did you flash a Hoof v1 firmware on a v2 board (or vice versa) by any chance? The pins used are different and the position of the keys in the matrix are very different so that certainly wouldn't work well...
I think I flashed v2 first (I have a v1 Hoof). No difference after trying with v1 firmware though.
-
I might've dun goofed. I just tried flashing my first firmware to a Pegasus Hoof on my Filco MJ2. For some reason most of the buttons on the bottom row are unresponsive - and I can't seem to get it back into bootmode (I programmed pause to act as boot). Did I just brick it?
Edit: nevermind, got it back into boot. Still having issues with everything on the two lower rows. The only keys that work are b,n,-,shift it seems. Even when I flashed a default firmware.
Did you flash a Hoof v1 firmware on a v2 board (or vice versa) by any chance? The pins used are different and the position of the keys in the matrix are very different so that certainly wouldn't work well...
I think I flashed v2 first (I have a v1 Hoof). No difference after trying with v1 firmware though.
If the v1 and the v2 are working exactly the same, then something strange is going on.
Anyway, I have a few keyboards with bpiphany controllers. Maybe I should try them out with the latest firmware to make sure I didn't botch anything with recent updates. I'll get back to you.
-
I might've dun goofed. I just tried flashing my first firmware to a Pegasus Hoof on my Filco MJ2. For some reason most of the buttons on the bottom row are unresponsive - and I can't seem to get it back into bootmode (I programmed pause to act as boot). Did I just brick it?
Edit: nevermind, got it back into boot. Still having issues with everything on the two lower rows. The only keys that work are b,n,-,shift it seems. Even when I flashed a default firmware.
Did you flash a Hoof v1 firmware on a v2 board (or vice versa) by any chance? The pins used are different and the position of the keys in the matrix are very different so that certainly wouldn't work well...
I think I flashed v2 first (I have a v1 Hoof). No difference after trying with v1 firmware though.
If the v1 and the v2 are working exactly the same, then something strange is going on.
Anyway, I have a few keyboards with bpiphany controllers. Maybe I should try them out with the latest firmware to make sure I didn't botch anything with recent updates. I'll get back to you.
Tried both 2_03_01 and 2_02_02, same results. Could the 32-bit drivers for the Atmel be the cause? I just tried to install what looked like 64-bit drivers, but Windows didn't want that.
Keep in mind that I am completely new to this, I just got things up and running a few hours ago. It's not my computer as I tried a clean v1 firmare (only change was added bootmode button) on my Surface without luck.
-
I might've dun goofed. I just tried flashing my first firmware to a Pegasus Hoof on my Filco MJ2. For some reason most of the buttons on the bottom row are unresponsive - and I can't seem to get it back into bootmode (I programmed pause to act as boot). Did I just brick it?
Edit: nevermind, got it back into boot. Still having issues with everything on the two lower rows. The only keys that work are b,n,-,shift it seems. Even when I flashed a default firmware.
Did you flash a Hoof v1 firmware on a v2 board (or vice versa) by any chance? The pins used are different and the position of the keys in the matrix are very different so that certainly wouldn't work well...
I think I flashed v2 first (I have a v1 Hoof). No difference after trying with v1 firmware though.
If the v1 and the v2 are working exactly the same, then something strange is going on.
Anyway, I have a few keyboards with bpiphany controllers. Maybe I should try them out with the latest firmware to make sure I didn't botch anything with recent updates. I'll get back to you.
Tried both 2_03_01 and 2_02_02, same results. Could the 32-bit drivers for the Atmel be the cause? I just tried to install what looked like 64-bit drivers, but Windows didn't want that.
Keep in mind that I am completely new to this, I just got things up and running a few hours ago. It's not my computer as I tried a clean v1 firmare (only change was added bootmode button) on my Surface without luck.
Nah thats got nothing to do with it. It's gotta be the firmware. Don't worry we'll get it straightened out.
-
I might've dun goofed. I just tried flashing my first firmware to a Pegasus Hoof on my Filco MJ2. For some reason most of the buttons on the bottom row are unresponsive - and I can't seem to get it back into bootmode (I programmed pause to act as boot). Did I just brick it?
Edit: nevermind, got it back into boot. Still having issues with everything on the two lower rows. The only keys that work are b,n,-,shift it seems. Even when I flashed a default firmware.
Did you flash a Hoof v1 firmware on a v2 board (or vice versa) by any chance? The pins used are different and the position of the keys in the matrix are very different so that certainly wouldn't work well...
I think I flashed v2 first (I have a v1 Hoof). No difference after trying with v1 firmware though.
If the v1 and the v2 are working exactly the same, then something strange is going on.
Anyway, I have a few keyboards with bpiphany controllers. Maybe I should try them out with the latest firmware to make sure I didn't botch anything with recent updates. I'll get back to you.
Tried both 2_03_01 and 2_02_02, same results. Could the 32-bit drivers for the Atmel be the cause? I just tried to install what looked like 64-bit drivers, but Windows didn't want that.
Keep in mind that I am completely new to this, I just got things up and running a few hours ago. It's not my computer as I tried a clean v1 firmare (only change was added bootmode button) on my Surface without luck.
Try this version:
https://www.dropbox.com/s/ze2zsk0ejuvylc7/easykeymap_windows_2_03_02.zip?dl=0
Remember this is a hardware change so you should make a new layout from scratch
-
I've noticed some issues, and am not sure how to proceed;
Some context first;
1. I'm running the latest firmware on the wiki, 2.03.01.
2. Satan GH60
2. I have 3 layers, all really basic. FN1 (On a capslock and FN key - both as basic toggles).
3. If spacebar is pressed whilst on FN1, layer 2 is toggled on.
4. I have a USB hub that I plug into the machine I intend to run - either a Macbook Pro during the day, or a PC during the evening. I always reset the power on the hub when I swap.
And my issues;
1. After a while of use, I start getting double and then sometimes triple keypresses of what seemingly appear to be random keys. At first I thought they'd only appear after a certain combination but its really hard to tell.
2. Sometimes, after a week or sometimes longer - the keyboard goes bonkers and my OS's have fits of rage. I have to unplug and replug the keyboard to resolve.
These issues have both presented themselves on my OSX and WIN machines. The double up of keypresses is happening on a daily basis now.
Is there a setting I could tweak that might help here?
Thanks!
-
I might've dun goofed. I just tried flashing my first firmware to a Pegasus Hoof on my Filco MJ2. For some reason most of the buttons on the bottom row are unresponsive - and I can't seem to get it back into bootmode (I programmed pause to act as boot). Did I just brick it?
Edit: nevermind, got it back into boot. Still having issues with everything on the two lower rows. The only keys that work are b,n,-,shift it seems. Even when I flashed a default firmware.
Did you flash a Hoof v1 firmware on a v2 board (or vice versa) by any chance? The pins used are different and the position of the keys in the matrix are very different so that certainly wouldn't work well...
I think I flashed v2 first (I have a v1 Hoof). No difference after trying with v1 firmware though.
If the v1 and the v2 are working exactly the same, then something strange is going on.
Anyway, I have a few keyboards with bpiphany controllers. Maybe I should try them out with the latest firmware to make sure I didn't botch anything with recent updates. I'll get back to you.
Tried both 2_03_01 and 2_02_02, same results. Could the 32-bit drivers for the Atmel be the cause? I just tried to install what looked like 64-bit drivers, but Windows didn't want that.
Keep in mind that I am completely new to this, I just got things up and running a few hours ago. It's not my computer as I tried a clean v1 firmare (only change was added bootmode button) on my Surface without luck.
Try this version:
https://www.dropbox.com/s/ze2zsk0ejuvylc7/easykeymap_windows_2_03_02.zip?dl=0
Remember this is a hardware change so you should make a new layout from scratch
That was quick! Everything works now :) Thanks!!
-
Got my Satan earlier today. It's built and I first flashed my keymap with TMK. But I went to AVR as it offers to lock the win key and lock all the keys. I pretty much have everything set up the way I want except that most of the media keys are not working. The Media Player key works but play/pause, next/prev track, nav forward/backward all don't work. The volumn keys work though. Any ideas if I'm doing something wrong?
-
Got my Satan earlier today. It's built and I first flashed my keymap with TMK. But I went to AVR as it offers to lock the win key and lock all the keys. I pretty much have everything set up the way I want except that most of the media keys are not working. The Media Player key works but play/pause, next/prev track, nav forward/backward all don't work. The volumn keys work though. Any ideas if I'm doing something wrong?
What OS? The media keys are based on Windows. Even if using Windows, I've found that only some apps respond to those keys. If the volume is working then the keyboard is working.
-
Windows 10. Oddly the media keys work on my Shine 5 that I've setup as a macro to the 4 keys above the numpad, play/pause, mute, next track and prev track. Would be nice if I can get it to work on the Satan, I do use them keys often.
Another thing. I've played around with the backlight keys too but is there a way to edit how the backlight modes are? I'm guessing this goes deeper than what AVR can do? If possible I would like to remove the breathing mode entirely and add in a reactive mode that lights up each key when pressed. So there is only full backlight with steps of different brightness and then the reactive mode.
Thank you!
-
I don't think the Satan has the capability to address each led individually
-
Okay I fixed the media keys problem, Chrome browser was hijacking the media keys for their Play Music thing.
If I can't do the reactive mode can I fix up the backlight modes? So at the moments I have the 3 keys BL Enable, BL Mode and BL Dimmer. Below I've listed what happens when I press the keys.
BL Modes:
Press 1. Full backlight mode - Pressing BL Dimmer I can change the brightness, 5 levels.
Press 2. Breathing mode - BL Dimmer does nothing.
Press 3. Decay mode - BL Dimmer does nothing.
Press 4. All keys on full brightness and flashes once quickly when any key is pressed. Not sure what the hell this is lol.
Is it possible to remove decay mode and whatever the hell the fourth mode is from BL Mode key? Also when I unplug the keyboard or switch on/off the computer the board doesn't remember the last mode it was in, every time it boots up with full brightness full backlight. Is this a board problem or can it be fixed in software?
-
To remove modes you'll need to hack the code - removing is easier than adding so if you're an aspiring programmer give it a go!
As for defaults they are set using the CONFIG key - assign it, then press it while in a text editor. There is 'help on special config settings' in the help menu in the keymapper to explain the options :)
-
Ah jesus programming is always something I've put off but I might just have to try it this once. Where do I even start?
I've had a play with the Config in a text editor but when I set the default dimmer levels and backlight enable options to any number between the suggested 1-16 the results are all the same.
-
I have a GH60 and the default backlight setting works fine, but the LEDs are straight on the pins whereas I guess the Satan has a transistor - not too sure what difference that makes, will have to have a look at the config and a pic to check.
If you download the .zip from github in firmware/source there are two files called led.c and .h, having opened both it's pretty obvious how to remove the modes you don't want so I'll let you work that out.
Changing it to glow when a key is pressed (will be whole board not just that key) rather than get dimmer shouldn't be too hard, the function names are clear so have a look and try and work it out.
-
Is it really so hard to cycle through 5 modes?
-
Hey metalliqaz, first off thank you for your firmware/keymapper! I just got the QuickFire XT with the Ghost Squid and your firmware made it really easy to dive into.
One issue I am having unfortunately is the keyboard isn't waking the computer from sleep when I press a button like space bar. Not the biggest deal as I can use my mouse, but when I left my computer in sleep mode overnight and woke it up (with my mouse), none of the USB devices (including my mouse) were working afterwards and I was unable to login.
I tried putting my computer asleep just now and woke it up shortly after using the mouse and it worked fine. Hoping this was just some weird anomaly and won't be an everyday occurrence after my pc has been in sleep for extended periods of time.
If there's a way to enable wake from keyboard that would be great too. Thanks again!
-
I have a GH60 and the default backlight setting works fine, but the LEDs are straight on the pins whereas I guess the Satan has a transistor - not too sure what difference that makes, will have to have a look at the config and a pic to check.
If you download the .zip from github in firmware/source there are two files called led.c and .h, having opened both it's pretty obvious how to remove the modes you don't want so I'll let you work that out.
Changing it to glow when a key is pressed (will be whole board not just that key) rather than get dimmer shouldn't be too hard, the function names are clear so have a look and try and work it out.
I opened up the two LED files and I can see some lines of code with the backlight modes but I haven't got a clue what to do with it!
Is it really so hard to cycle through 5 modes?
No it's not hard but it would be nice to be able to select which modes you want, instead of all or nothing. But I figured if I only set BL Enable and BL Dimmer but no BL Mode, this will let me turn backlight on/off and change the brightness with BL Dimmer.
-
The "All keys" layout is confirmed as all working, the only strangeness is that if you use a 1u-1.75u right shift split the keys are swapped compared to their matrix positions, so by default FN is inside shift. It's a hardware issue but worth noting if anyone queries it.
What did you do to make the right shift work with the FN key on the extreme right? Did you just swap them inside EasyAVR?
-
The "All keys" layout is confirmed as all working, the only strangeness is that if you use a 1u-1.75u right shift split the keys are swapped compared to their matrix positions, so by default FN is inside shift. It's a hardware issue but worth noting if anyone queries it.
What did you do to make the right shift work with the FN key on the extreme right? Did you just swap them inside EasyAVR?
Yeah I just know to swap them, you could copy the config file to your boards directory and swap it in there if it bothers you. It's good to find a fellow jumbo sized FN fan :))
-
The "All keys" layout is confirmed as all working, the only strangeness is that if you use a 1u-1.75u right shift split the keys are swapped compared to their matrix positions, so by default FN is inside shift. It's a hardware issue but worth noting if anyone queries it.
What did you do to make the right shift work with the FN key on the extreme right? Did you just swap them inside EasyAVR?
Yeah I just know to swap them, you could copy the config file to your boards directory and swap it in there if it bothers you. It's good to find a fellow jumbo sized FN fan :))
Haha yeah, I'm just planning ahead (I haven't started soldering yet). I uploaded the firmware, tested with a pin and it registered as right shift so I came searching here ;D
-
The "All keys" layout is confirmed as all working, the only strangeness is that if you use a 1u-1.75u right shift split the keys are swapped compared to their matrix positions, so by default FN is inside shift. It's a hardware issue but worth noting if anyone queries it.
What did you do to make the right shift work with the FN key on the extreme right? Did you just swap them inside EasyAVR?
Yeah I just know to swap them, you could copy the config file to your boards directory and swap it in there if it bothers you. It's good to find a fellow jumbo sized FN fan :))
Haha yeah, I'm just planning ahead (I haven't started soldering yet). I uploaded the firmware, tested with a pin and it registered as right shift so I came searching here ;D
Thank you, it works!
-
Hey, I'm having an odd issue with the numpad scancodes.
I have set some keys to represent a numpad on my 60% and they are set to the HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN for example, yet in Windows they act as if they are the number keys. I tried Aquakeytest and it doesn't recognize the keys as the numpad keys. Num lock does change those keys to arrows, page dn and whatnot but they are still not recognized as actual numpad keys but the regular arrows, page up etc.
This prevents me from writing the Alt+scancode special characters.
-
hey metalliqaz, slight update.
I was trying to tweak my debounce and matrix wait times.
So debounce 20, matrix wait 60 still had the doubles and delayed hits.
Worked matrix up to 80, now I'm at 100 and the typos have dropped drastically.
It's been over a week now I believe and Im getting 0-3 typos a day.
Also the letter H and spaces would be the most typoed. I haven't had a single H yet. Space is a bit random still.
Again I am a bit puzzled as it must be tied into the way I type somehow.
At home on my razer blackwidow cherry mx blues I get some of the typos as well. But if so I think its only rare cases like letter a coming one more time later.
Hey guys, are settings supposed to reset if its disconnected for a while?
I brought my Keyboard home on Wednesday for the weekend and cleaned the keycaps.
I connected it back yesterday after it being offline 5 and say my typos increase, lots of double h's again.
I just checked and my debounce and matrix wait were back to default settings.
-
Hey, I'm having an odd issue with the numpad scancodes.
I have set some keys to represent a numpad on my 60% and they are set to the HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN for example, yet in Windows they act as if they are the number keys. I tried Aquakeytest and it doesn't recognize the keys as the numpad keys. Num lock does change those keys to arrows, page dn and whatnot but they are still not recognized as actual numpad keys but the regular arrows, page up etc.
This prevents me from writing the Alt+scancode special characters.
What board is this on? Sounds like it's something to do with the virtual numberpad setting which is on by default on 60% boards. Try assigning a key to CONFIG and press it in a text editor to turn it off.
-
Hey, I'm having an odd issue with the numpad scancodes.
I have set some keys to represent a numpad on my 60% and they are set to the HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN for example, yet in Windows they act as if they are the number keys. I tried Aquakeytest and it doesn't recognize the keys as the numpad keys. Num lock does change those keys to arrows, page dn and whatnot but they are still not recognized as actual numpad keys but the regular arrows, page up etc.
This prevents me from writing the Alt+scancode special characters.
What board is this on? Sounds like it's something to do with the virtual numberpad setting which is on by default on 60% boards. Try assigning a key to CONFIG and press it in a text editor to turn it off.
It's the Satan GH60. I was able to fix the issue by changing the unlink num lock option from the config menu. Otherwise it will always output just regular number keys which is a bit confusing.
-
I loved this application, but sadly I cannot get it to run anymore. I had to do a fresh install of windows on my machine, and since then it will not run.
I have the most recent DirectX.
I was getting an issue where my system was missing the msvcr100.dll file.
I tried to dl and replace the file and now I just get a "0xc000007b" unable to start issue.
I know this is an issue with my system, and not the software. Just thought id throw it up there for you guys to take a look at.
-
I loved this application, but sadly I cannot get it to run anymore. I had to do a fresh install of windows on my machine, and since then it will not run.
I have the most recent DirectX.
I was getting an issue where my system was missing the msvcr100.dll file.
I tried to dl and replace the file and now I just get a "0xc000007b" unable to start issue.
I know this is an issue with my system, and not the software. Just thought id throw it up there for you guys to take a look at.
While it's good to know you're ready to game EasyAVR is not written in DirectX, so that won't help :))
First suggestion would be to (re)install the VCC 2010 runtime (https://www.microsoft.com/en-us/download/details.aspx?id=26999) which contains the previously missing dll.
-
I loved this application, but sadly I cannot get it to run anymore. I had to do a fresh install of windows on my machine, and since then it will not run.
I have the most recent DirectX.
I was getting an issue where my system was missing the msvcr100.dll file.
I tried to dl and replace the file and now I just get a "0xc000007b" unable to start issue.
I know this is an issue with my system, and not the software. Just thought id throw it up there for you guys to take a look at.
While it's good to know you're ready to game EasyAVR is not written in DirectX, so that won't help :))
First suggestion would be to (re)install the VCC 2010 runtime (https://www.microsoft.com/en-us/download/details.aspx?id=26999) which contains the previously missing dll.
Lol, when I looked up the error code, it said that directx could be an issue, and it wasnt in a gaming forum!
thanks naranja.
Im gonna look into it when i have a few minutes.
-
I loved this application, but sadly I cannot get it to run anymore. I had to do a fresh install of windows on my machine, and since then it will not run.
I have the most recent DirectX.
I was getting an issue where my system was missing the msvcr100.dll file.
I tried to dl and replace the file and now I just get a "0xc000007b" unable to start issue.
I know this is an issue with my system, and not the software. Just thought id throw it up there for you guys to take a look at.
While it's good to know you're ready to game EasyAVR is not written in DirectX, so that won't help :))
First suggestion would be to (re)install the VCC 2010 runtime (https://www.microsoft.com/en-us/download/details.aspx?id=26999) which contains the previously missing dll.
didnt seem to do the trick.
maybe its because I attempted to drop in the missing file manually.
sigh.
-
Thanks for the firware, super easy to use for a noob like me, helped me program my JD40 like I wanted, perfect!!
-
Anyone got the caps lock LED working on the GH60 rev. C?
Tested the LED on the PCB directly and it works. The switch works too but the LED doesn't light up.
-
Anyone got the caps lock LED working on the GH60 rev. C?
Tested the LED on the PCB directly and it works. The switch works too but the LED doesn't light up.
Forgot to solder in the resistor. Now it works.
-
Guys, please help, I need to find driver for the Kitten Paw controller.
I ordered a Kitten Paw for my Filco, and installed the board. After installing and plugging in, the keyboard works fine like a normal keyboard. I downloaded the program and created the hex file. Before opening up FLIP, the software doesn't recognise the controller. I try do some Google Seach and recognised that the driver has not yet been installed properly. I tried windows update and do everything in the device manager to make sure Windows trying to find the latest driver, but windows doesnt find any update whatsoever.
Can you please direct me to the driver for these custom controller?
I am using Win 7 Ultimate 64 bit.
Thanks.
-
Guys, please help, I need to find driver for the Kitten Paw controller.
I ordered a Kitten Paw for my Filco, and installed the board. After installing and plugging in, the keyboard works fine like a normal keyboard. I downloaded the program and created the hex file. Before opening up FLIP, the software doesn't recognise the controller. I try do some Google Seach and recognised that the driver has not yet been installed properly. I tried windows update and do everything in the device manager to make sure Windows trying to find the latest driver, but windows doesnt find any update whatsoever.
Can you please direct me to the driver for these custom controller?
I am using Win 7 Ultimate 64 bit.
Thanks.
Follow the instructions given for using Amtel Flip from this PDF; http://www.atmel.com/Images/doc7769.pdf This should help you get it working.
-
Guys, please help, I need to find driver for the Kitten Paw controller.
I ordered a Kitten Paw for my Filco, and installed the board. After installing and plugging in, the keyboard works fine like a normal keyboard. I downloaded the program and created the hex file. Before opening up FLIP, the software doesn't recognise the controller. I try do some Google Seach and recognised that the driver has not yet been installed properly. I tried windows update and do everything in the device manager to make sure Windows trying to find the latest driver, but windows doesnt find any update whatsoever.
Can you please direct me to the driver for these custom controller?
I am using Win 7 Ultimate 64 bit.
Thanks.
Follow the instructions given for using Amtel Flip from this PDF; http://www.atmel.com/Images/doc7769.pdf This should help you get it working.
Thanks Im able to install the driver and chose the right controler but FLIP can't access my controller via usb yet. Here's the screen shot, can you please help me to trouble shoot?
Thanks.
[attach=1]
-
Guys, please help, I need to find driver for the Kitten Paw controller.
I ordered a Kitten Paw for my Filco, and installed the board. After installing and plugging in, the keyboard works fine like a normal keyboard. I downloaded the program and created the hex file. Before opening up FLIP, the software doesn't recognise the controller. I try do some Google Seach and recognised that the driver has not yet been installed properly. I tried windows update and do everything in the device manager to make sure Windows trying to find the latest driver, but windows doesnt find any update whatsoever.
Can you please direct me to the driver for these custom controller?
I am using Win 7 Ultimate 64 bit.
Thanks.
Follow the instructions given for using Amtel Flip from this PDF; http://www.atmel.com/Images/doc7769.pdf This should help you get it working.
Thanks Im able to install the driver and chose the right controler but FLIP can't access my controller via usb yet. Here's the screen shot, can you please help me to trouble shoot?
Thanks.
(Attachment Link)
Verify that your in the bootloader mode and try again. I have had to quit and restart Flip a time or two to open the USB port. I usually put my keyboard in bootloader mode before I open Flip and have no problem with it.
-
Verify that your in the bootloader mode and try again. I have had to quit and restart Flip a time or two to open the USB port. I usually put my keyboard in bootloader mode before I open Flip and have no problem with it.
Thanks, it's what I am missing. I haven't put the keyboard into bootloader mode yet.
So my problem is not on how to flash the firmware.
Sorry for many stupid questions, I am new into this programable keyboard and bought this controller as a tryout.
-
I looked through this thread and couldn't find any updates on RGB support. I've got the GH60 Satan with an RGB strip on the bottom. I believe it's soldered to PE2 on the atmega32u4 and the VCC and GND on the PCB itself. I really want to use this to set everything up but I want that RGB strip to work too
-
I have a request to make the firmware compatible with the techKeys 6keyboard. Its an ATmega16U2 as far as I can tell. Anything I can do to help make this happen?
-
I have a request to make the firmware compatible with the techKeys 6keyboard. Its an ATmega16U2 as far as I can tell. Anything I can do to help make this happen?
Should be easy, can you post some nice pics of both sides with the light and angle setup so the traces on the board are visible in the shine? Would be easier if there were no switches but I guess it's too late for that...
-
I have a request to make the firmware compatible with the techKeys 6keyboard. Its an ATmega16U2 as far as I can tell. Anything I can do to help make this happen?
Should be easy, can you post some nice pics of both sides with the light and angle setup so the traces on the board are visible in the shine? Would be easier if there were no switches but I guess it's too late for that...
Thanks suicidal. It's hard to see the traces in the stock photo from techkeys, but maybe that's better than with switches. I will shoot the back side when I get off work.
PCB
(http://cdn.shopify.com/s/files/1/0218/4886/products/PCB_1024x1024.jpg)
-
Wow that looks busy, and very double sided - I guess with so few switches it has no diodes and individually addressable LEDs... Not so easy but hopefully the back is helpful.
-
Wow that looks busy, and very double sided - I guess with so few switches it has no diodes and individually addressable LEDs... Not so easy but hopefully the back is helpful.
I made a mistake. That's the side opposite the keys. Here's the side facing the keys:
(http://cdn.shopify.com/s/files/1/0218/4886/products/PCB_Back_1024x1024.jpg)
Indeed it is very double sided. I can't even tell where the traces for the keys go. This might be more involved than its worth. It doesn't have a Teensy style push-button so I'm not sure how to even get it into boot mode probably have to short some of the pads, but I'm not experienced enough to know which.
-
Help! my keyboard moves the mouse up and to the left and it cant type
-
Awesome, You are quite the hero in my book.
So after all my trials and tribulations with the Moist60 AEK board, I took the rest and turned it to a cool little compact pad for work and data entry.
Show Image
(http://i.imgur.com/TfpLZwl.jpg)
Show Image
(http://i.imgur.com/AkGVFVc.jpg)
I took the info you just gave me and my learned knowledge from flailing around in EasyAVR to make this up
Show Image
(http://i.imgur.com/3bIjFsX.png)
Success on my first try!
Thanks for being so attentive ans helpful!
Now to switch the slash and asterisk caps, and make some macros.
neat project. did you ever finish the case? or was this just a prototype test sort of project?
-
Awesome, You are quite the hero in my book.
So after all my trials and tribulations with the Moist60 AEK board, I took the rest and turned it to a cool little compact pad for work and data entry.
Show Image
(http://i.imgur.com/TfpLZwl.jpg)
Show Image
(http://i.imgur.com/AkGVFVc.jpg)
I took the info you just gave me and my learned knowledge from flailing around in EasyAVR to make this up
Show Image
(http://i.imgur.com/3bIjFsX.png)
Success on my first try!
Thanks for being so attentive ans helpful!
Now to switch the slash and asterisk caps, and make some macros.
neat project. did you ever finish the case? or was this just a prototype test sort of project?
Never did get around to a case. It's bolted at a high angle to a piece of sanded plywood. Completely stable, just shows off the guts =)
Sent from my local payphone
-
Awesome, You are quite the hero in my book.
So after all my trials and tribulations with the Moist60 AEK board, I took the rest and turned it to a cool little compact pad for work and data entry.
Show Image
(http://i.imgur.com/TfpLZwl.jpg)
Show Image
(http://i.imgur.com/AkGVFVc.jpg)
I took the info you just gave me and my learned knowledge from flailing around in EasyAVR to make this up
Show Image
(http://i.imgur.com/3bIjFsX.png)
Success on my first try!
Thanks for being so attentive ans helpful!
Now to switch the slash and asterisk caps, and make some macros.
neat project. did you ever finish the case? or was this just a prototype test sort of project?
Never did get around to a case. It's bolted at a high angle to a piece of sanded plywood. Completely stable, just shows off the guts =)
Sent from my local payphone
nice! is it hand wired? pic?
-
Awesome, You are quite the hero in my book.
So after all my trials and tribulations with the Moist60 AEK board, I took the rest and turned it to a cool little compact pad for work and data entry.
Show Image
(http://i.imgur.com/TfpLZwl.jpg)
Show Image
(http://i.imgur.com/AkGVFVc.jpg)
I took the info you just gave me and my learned knowledge from flailing around in EasyAVR to make this up
Show Image
(http://i.imgur.com/3bIjFsX.png)
Success on my first try!
Thanks for being so attentive ans helpful!
Now to switch the slash and asterisk caps, and make some macros.
neat project. did you ever finish the case? or was this just a prototype test sort of project?
Never did get around to a case. It's bolted at a high angle to a piece of sanded plywood. Completely stable, just shows off the guts =)
Sent from my local payphone
nice! is it hand wired? pic?
Yep hardwired with some cable I had lying around. I'll see if I have anything on my phone. I'm in the car heading to vacation. So if not I'll post it when I get back
Sent from my local payphone
-
Awesome, You are quite the hero in my book.
So after all my trials and tribulations with the Moist60 AEK board, I took the rest and turned it to a cool little compact pad for work and data entry.
Show Image
(http://i.imgur.com/TfpLZwl.jpg)
Show Image
(http://i.imgur.com/AkGVFVc.jpg)
I took the info you just gave me and my learned knowledge from flailing around in EasyAVR to make this up
Show Image
(http://i.imgur.com/3bIjFsX.png)
Success on my first try!
Thanks for being so attentive ans helpful!
Now to switch the slash and asterisk caps, and make some macros.
neat project. did you ever finish the case? or was this just a prototype test sort of project?
Never did get around to a case. It's bolted at a high angle to a piece of sanded plywood. Completely stable, just shows off the guts =)
Sent from my local payphone
nice! is it hand wired? pic?
Yep hardwired with some cable I had lying around. I'll see if I have anything on my phone. I'm in the car heading to vacation. So if not I'll post it when I get back
Sent from my local payphone
nice. have a good va ca Bro :thumb:
-
Pinout here: https://github.com/jackhumbert/qmk_firmware/tree/master/keyboard/sixkeyboard
Wow that looks busy, and very double sided - I guess with so few switches it has no diodes and individually addressable LEDs... Not so easy but hopefully the back is helpful.
-
Pinout here: https://github.com/jackhumbert/qmk_firmware/tree/master/keyboard/sixkeyboard
Wow that looks busy, and very double sided - I guess with so few switches it has no diodes and individually addressable LEDs... Not so easy but hopefully the back is helpful.
Thanks, that's a lot easier than following traces in the darkness!
I'll PM ArchieTect but if anyone else sees this first feel free to test the attached - you need to put the files in /home/username/.EasyAVR on Linux or c:\users\username\.EasyAVR on Windows then they will show up next time you run EasyAVR. I think one of them will spam all the keys so you probably want to close your music player before testing :))
-
Hey guys I've been on a bit of a "Vacation" from Geekhack. Doom and summer fun and all that. I'm trying to get back to it now. I'll read through the thread and answer what I missed. Looks like there have been questions about the 6keyboard. I actually bought one with the intention of porting the firmware, but I didn't get to it yet and it looks like it may already be done. I recently finished off my second Sigma board. Not sure how much longer I'll stay around before my "retirement", but for the time being I'm still around.
-
Will you finish implementing the KC60?
-
Thank you for including the Atomic layout recently. It was a huge help for me, as I was NOT looking forward to compiling my own QMK.
-
Can i help to revive hope for the Nerd60? Just finished my build and im... uuhh... not happy with the original GUI ;)
My satan, pegasus hoof and frosty flake running are running very well with the easyavr tool
-
Can i help to revive hope for the Nerd60? Just finished my build and im... uuhh... not happy with the original GUI ;)
My satan, pegasus hoof and frosty flake running are running very well with the easyavr tool
If you want EasyAVR on your gon you'll need to replace the bootloader as detailed in DanielT's guide (https://geekhack.org/index.php?topic=82676.msg2192323#msg2192323) - still interested?
-
Can i help to revive hope for the Nerd60? Just finished my build and im... uuhh... not happy with the original GUI ;)
My satan, pegasus hoof and frosty flake running are running very well with the easyavr tool
If you want EasyAVR on your gon you'll need to replace the bootloader as detailed in DanielT's guide (https://geekhack.org/index.php?topic=82676.msg2192323#msg2192323) - still interested?
read through the articles and just bought the controller, so yeah, sure!
-
Having trouble with media keys (prev/next track, vol down, vol up, mute), they just don't seem to do anything in Windows 10. Tried them in various programs from Windows Media Player to foobar2k and Spotify. No response and even tried reflashing the firmware.
Any ideas how I could get these to work? They would allow decent volume control for my active monitors without having to buy some expensive volume control device for them as my audio interface has no physical knobs for that.
-
The scan codes haven't changed for Win10. If the keyboard is still sending the right scan codes then the OS should be processing them. Have you tested it on another system? Microsoft also has a test applet specifically for media keys here: https://msdn.microsoft.com/en-us/library/windows/hardware/jj124717(v=vs.85).aspx
-
The scan codes haven't changed for Win10. If the keyboard is still sending the right scan codes then the OS should be processing them. Have you tested it on another system? Microsoft also has a test applet specifically for media keys here: https://msdn.microsoft.com/en-us/library/windows/hardware/jj124717(v=vs.85).aspx
Got it solved by going to keyboard config and changing the basic keyboard setting.
-
Can i help to revive hope for the Nerd60? Just finished my build and im... uuhh... not happy with the original GUI ;)
My satan, pegasus hoof and frosty flake running are running very well with the easyavr tool
If you want EasyAVR on your gon you'll need to replace the bootloader as detailed in DanielT's guide (https://geekhack.org/index.php?topic=82676.msg2192323#msg2192323) - still interested?
Controller is here, i can successfully read data from the controller
avrdude -p m32u4 -c usbasp -U flash:r:/tmp/dump1.hex:i -P /dev/USBasp
vrdude: AVR device initialized and ready to accept instructions
Reading | | 0% 0.00s
Reading | ################# | 33% 0.01s
Reading | ################################# | 66% 0.02s
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9587
avrdude: reading flash memory:
Reading | | 0% 0.00s
Reading | # | 1% 1.87s
Reading | # | 2% 3.72s
Reading | ## | 3% 4.95s
Reading | ################################################## | 100% 158.28s
avrdude: writing output file "/tmp/dump1.hex"
avrdude: safemode: Fuses OK (E:C3, H:D8, L:DF)
avrdude done. Thank you.
-
Ooh nice! I made the config but it wouldn't compile (syntax error so I a missed , somewhere or something equally stupid and hard to spot) - will have another look now with fresh eyes.
-
OK, it compiles. You should know that this may not work first time but if you're willing to have a non/partially functioning board try the attached - should be standard ANSI, but I see you're in Germany so that's probably not a good start :))
I'll be around on and off all afternoon so hopefully we can get it working by then.
-
OK, it compiles. You should know that this may not work first time but if you're willing to have a non/partially functioning board try the attached - should be standard ANSI, but I see you're in Germany so that's probably not a good start :))
I'll be around on and off all afternoon so hopefully we can get it working by then.
as long as i dont end up with a bricked (final) keyboard, i dont care :) i start flashing the bootloader and your hexfile (yeah, i know, some keys may not work bc of iso<>ansi) in about an hour.
FYI: my version of the iso nerd60 has a 1.25 left shift and a hhkb style right shift (1.75+1), as well as 2*1 instead of 1*2 backspace. bottom row is 1.25*3 - 6.25 - 1.25*4
-
OK, it compiles. You should know that this may not work first time but if you're willing to have a non/partially functioning board try the attached - should be standard ANSI, but I see you're in Germany so that's probably not a good start :))
I'll be around on and off all afternoon so hopefully we can get it working by then.
ok, "bad" news: flashed the atmel bootloader, worked. after connecting the the keyboard to the debian machine via usb, it was recognised in DFU mode:
[260693.055358] usb 4-1: new full-speed USB device number 8 using ohci-pci
[260693.238327] usb 4-1: New USB device found, idVendor=03eb, idProduct=2ff4
[260693.245165] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[260693.252473] usb 4-1: Product: ATm32U4DFU
[260693.256513] usb 4-1: Manufacturer: ATMEL
[260693.260548] usb 4-1: SerialNumber: 1.0.0
After connecting the nerd60 to the windows machine, it got recognised as ATmega32U4 ... (DFU...).
Then i used FLIP on my windows 7 machine to flash nerd.hex to the controller. I unchecked the button "reset" (fuses...) next to the "start application" button. after hitting the button, the nerd became a "unknown device" :-)
-
OK, it compiles. You should know that this may not work first time but if you're willing to have a non/partially functioning board try the attached - should be standard ANSI, but I see you're in Germany so that's probably not a good start :))
I'll be around on and off all afternoon so hopefully we can get it working by then.
ok, "bad" news: flashed the atmel bootloader, worked. after connecting the the keyboard to the debian machine via usb, it was recognised in DFU mode:
[260693.055358] usb 4-1: new full-speed USB device number 8 using ohci-pci
[260693.238327] usb 4-1: New USB device found, idVendor=03eb, idProduct=2ff4
[260693.245165] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[260693.252473] usb 4-1: Product: ATm32U4DFU
[260693.256513] usb 4-1: Manufacturer: ATMEL
[260693.260548] usb 4-1: SerialNumber: 1.0.0
After connecting the nerd60 to the windows machine, it got recognised as ATmega32U4 ... (DFU...).
Then i used FLIP on my windows 7 machine to flash nerd.hex to the controller. I unchecked the button "reset" (fuses...) next to the "start application" button. after hitting the button, the nerd became a "unknown device" :-)
If you've got linux use it - there's no point fighting with drivers in windows if you don't have to and "unknown device" is far from helpful.
I assume you followed the section on fuses?
-
flashed bootloader, set the fuses, then used FLIP under windows to flash the file. To get more output than "unknown device", i plugged it in under debian
debian dmesg output
[ 49.489535] usb 2-1.2: new full-speed USB device number 3 using ehci-pci
[ 49.561684] usb 2-1.2: device descriptor read/64, error -32
[ 49.737643] usb 2-1.2: device descriptor read/64, error -32
[ 49.913623] usb 2-1.2: new full-speed USB device number 4 using ehci-pci
[ 49.985647] usb 2-1.2: device descriptor read/64, error -32
[ 50.161642] usb 2-1.2: device descriptor read/64, error -32
[ 50.337635] usb 2-1.2: new full-speed USB device number 5 using ehci-pci
[ 50.745570] usb 2-1.2: device not accepting address 5, error -32
[ 50.817633] usb 2-1.2: new full-speed USB device number 6 using ehci-pci
[ 51.225613] usb 2-1.2: device not accepting address 6, error -32
[ 51.225916] usb 2-1-port2: unable to enumerate USB device
avrdude -c usbasp -p m32u4 -U lfuse:w:0xdf:m -U hfuse:w:0xd9:m -U efuse:w:0xc3:m -P /dev/USBasp
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9587
avrdude: reading input file "0xdf"
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.01s
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xdf:
avrdude: load data lfuse data from input file 0xdf:
avrdude: input file 0xdf contains 1 bytes
avrdude: reading on-chip lfuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0xd9"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.01s
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xd9:
avrdude: load data hfuse data from input file 0xd9:
avrdude: input file 0xd9 contains 1 bytes
avrdude: reading on-chip hfuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xc3"
avrdude: writing efuse (1 bytes):
Writing | ################################################## | 100% 0.01s
avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xc3:
avrdude: load data efuse data from input file 0xc3:
avrdude: input file 0xc3 contains 1 bytes
avrdude: reading on-chip efuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying ...
avrdude: 1 bytes of efuse verified
avrdude: safemode: Fuses OK (E:C3, H:D9, L:DF)
avrdude done. Thank you.
so i started over and redid all the steps:
reflashed bootloader with the programmer
changed fuses, again with the programmer.
I have little to no experience in AVR stuff. can you help me with the next steps (under debian only)?
-
The next step should be flashing
sudo avrdude -DV -P /dev/ttyACM1 -c avr109 -p atmega32u4 -b 57600 -U flash:w:'[path-to.hex]' :i
Perhaps now would be a good time to check if it's EasyAVR or something else - attached is a TMK .hex, a strange layout according to the guide but it should work so give that a try.
-
ahh, cool. i try to test that tomorrow. thanks for your help :)
-
I've submitted a pull request to add support for the v2 PCB from TechKeys.
Original file: https://github.com/MajorKoos/EasyAVR/blob/master/keymapper/easykeymap/boards/jd40v2.py
-
The next step should be flashing
sudo avrdude -DV -P /dev/ttyACM1 -c avr109 -p atmega32u4 -b 57600 -U flash:w:'[path-to.hex]' :i
Perhaps now would be a good time to check if it's EasyAVR or something else - attached is a TMK .hex, a strange layout according to the guide but it should work so give that a try.
this hexfile works fine - layout kinda like a poker3.
[ 3594.564107] usb 2-1.2: new full-speed USB device number 6 using ehci-pci
[ 3594.862756] usb 2-1.2: New USB device found, idVendor=feed, idProduct=6060
[ 3594.862766] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3594.862770] usb 2-1.2: Product: NerD
[ 3594.862774] usb 2-1.2: Manufacturer: GON
[ 3594.881110] hidraw: raw HID events driver (C) Jiri Kosina
[ 3596.023932] usbcore: registered new interface driver usbhid
[ 3596.023938] usbhid: USB HID core driver
[ 3596.028549] input: GON NerD as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/0003:FEED:6060.0001/input/input17
[ 3596.084541] hid-generic 0003:FEED:6060.0001: input,hidraw0: USB HID v1.11 Keyboard [GON NerD] on usb-0000:00:1d.0-1.2/input0
[ 3596.084723] input: GON NerD as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.1/0003:FEED:6060.0002/input/input18
[ 3596.140124] hid-generic 0003:FEED:6060.0002: input,hidraw1: USB HID v1.11 Mouse [GON NerD] on usb-0000:00:1d.0-1.2/input1
[ 3596.142487] input: GON NerD as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.2/0003:FEED:6060.0003/input/input19
[ 3596.196129] hid-generic 0003:FEED:6060.0003: input,hidraw2: USB HID v1.11 Device [GON NerD] on usb-0000:00:1d.0-1.2/input2
[ 3596.197758] hid-generic 0003:FEED:6060.0004: hiddev0,hidraw3: USB HID v1.11 Device [GON NerD] on usb-0000:00:1d.0-1.2/input3
(http://i.imgur.com/9hcn701.png)
fyi: enter works
-
Well that's good - you've definitely got the bootloader on there. Now you need to try flashing the EasyAVR hex in debian as you know that flasher works, or the TMK hex in Windows as you know the hex works. One or both of these should fail...
-
sorry suicidal_orange, my fault to not mention this: i used flip to flash the second image, i could not get avrdude to work with nerd60 connected by usb. i modified the udev-rules, but still it wouldnt work. (i edit this post later at home - im on my way to work).
one question: i have to definitly use avrdude and not dfu-programmer? after some googlefu, all found posts referenced dfu-programmer.
-
sorry suicidal_orange, my fault to not mention this: i used flip to flash the second image, i could not get avrdude to work with nerd60 connected by usb. i modified the udev-rules, but still it wouldnt work. (i edit this post later at home - im on my way to work).
one question: i have to definitly use avrdude and not dfu-programmer? after some googlefu, all found posts referenced dfu-programmer.
If you are using FLIP, you need to use dfu-programmer, avrdude is for serial com or if using an external flashing device.
-
You can use whatever - if it works it's good, if it doesn't it errors so no harm done :)
If TMK worked with FLiP it's the EasyAVR bit that didn't, try it again to check it wasn't a random flashing failure and if still no joy I'll have a look tonight what's special about the Nerd in the TMK config.
-
You can use whatever - if it works it's good, if it doesn't it errors so no harm done :)
If TMK worked with FLiP it's the EasyAVR bit that didn't, try it again to check it wasn't a random flashing failure and if still no joy I'll have a look tonight what's special about the Nerd in the TMK config.
ok, i dl'ed and flashed the hexfile again. same result, nerd_lufa.hex works, nerd.hex doesnt. same errormessage as last time.
-
You can use whatever - if it works it's good, if it doesn't it errors so no harm done :)
If TMK worked with FLiP it's the EasyAVR bit that didn't, try it again to check it wasn't a random flashing failure and if still no joy I'll have a look tonight what's special about the Nerd in the TMK config.
ok, i dl'ed and flashed the hexfile again. same result, nerd_lufa.hex works, nerd.hex doesnt. same errormessage as last time.
Flashed the dodgy hex to my GH60 - strange things happened. Flashed it to an empty Arduino - nothing happened, but keypresses don't register when I short pins and lsusb won't run even after disconnecting it. Very strange.
Sadly I've run out of day, will have another look tomorrow.
-
You can use whatever - if it works it's good, if it doesn't it errors so no harm done :)
If TMK worked with FLiP it's the EasyAVR bit that didn't, try it again to check it wasn't a random flashing failure and if still no joy I'll have a look tonight what's special about the Nerd in the TMK config.
ok, i dl'ed and flashed the hexfile again. same result, nerd_lufa.hex works, nerd.hex doesnt. same errormessage as last time.
Flashed the dodgy hex to my GH60 - strange things happened. Flashed it to an empty Arduino - nothing happened, but keypresses don't register when I short pins and lsusb won't run even after disconnecting it. Very strange.
Sadly I've run out of day, will have another look tomorrow.
good luck and see you later :)
-
Hi - Is there any way to detect from the computer when a FN (layer key) is pressed? Alternatively is it possible to also send a seldom used scan code (like F20 for example) when a FN key is pressed/released?
The reasoning behind this is that I would like to be able to pop-up a layer map on my monitor when I enter a different layer (while learning to use a 40%).
Thanks.
-
Hi - Is there any way to detect from the computer when a FN (layer key) is pressed? Alternatively is it possible to also send a seldom used scan code (like F20 for example) when a FN key is pressed/released?
The reasoning behind this is that I would like to be able to pop-up a layer map on my monitor when I enter a different layer (while learning to use a 40%).
Thanks.
Sorry to say there isn't any way to do this as the FN key is used by the keyboard controller to work out what characters should be sent to the computer, so it is handled internally. In theory you could modify the source code to send a character and recompile it but that's far from "Easy" so you're probably better off doing it the old fashioned way - printed copies of each layer's keymap or tall keycaps with stickers on the front.
The joys of 40% life, I'm still to master doing anything beyond chatting on mine after over a year so I can only wish you luck!
-
You can use whatever - if it works it's good, if it doesn't it errors so no harm done :)
If TMK worked with FLiP it's the EasyAVR bit that didn't, try it again to check it wasn't a random flashing failure and if still no joy I'll have a look tonight what's special about the Nerd in the TMK config.
ok, i dl'ed and flashed the hexfile again. same result, nerd_lufa.hex works, nerd.hex doesnt. same errormessage as last time.
Flashed the dodgy hex to my GH60 - strange things happened. Flashed it to an empty Arduino - nothing happened, but keypresses don't register when I short pins and lsusb won't run even after disconnecting it. Very strange.
Sadly I've run out of day, will have another look tomorrow.
good luck and see you later :)
Problem 1 identified - I used the 60% firmware when the matrix needs Costar. Looking at TMK makefile I don't see anything different between the Nerd and GH60 so this should work, or at least show up as a keyboard even if it doesn't output anything...
-
First of all, this GUI layout looks awesome - like the Microsoft keyboard layout on some *****in' amphetamines!
Secondly, I've scanned down this project, but I'm still trying to get my head around it all. I understand Soarer's converter needs a teensy, and TMK does too which leads me to ask:
- will this work on an arduino leonardo (with a 32u4 chip)
- if not, why is the arduino generally not supported for keyboard converters, but the teensy is when certain arduino's also have the HID functionality necessary? Is the teensy easier to code on?
-
First of all, this GUI layout looks awesome - like the Microsoft keyboard layout on some *****in' amphetamines!
Secondly, I've scanned down this project, but I'm still trying to get my head around it all. I understand Soarer's converter needs a teensy, and TMK does too which leads me to ask:
- will this work on an arduino leonardo (with a 32u4 chip)
- if not, why is the arduino generally not supported for keyboard converters, but the teensy is when certain arduino's also have the HID functionality necessary? Is the teensy easier to code on?
The Teensy is easier to flash as it has a friendly gui but I've used this on an Arduino Micro (official, not the smaller cheap pro micro) with no problem and I expect TMK and Soarer's would work too. Pretty sure the Micro is a Leonardo miniaturised so you should be fine, though it's a bit big to fit in a keyboard case...
-
First of all, this GUI layout looks awesome - like the Microsoft keyboard layout on some *****in' amphetamines!
Secondly, I've scanned down this project, but I'm still trying to get my head around it all. I understand Soarer's converter needs a teensy, and TMK does too which leads me to ask:
- will this work on an arduino leonardo (with a 32u4 chip)
- if not, why is the arduino generally not supported for keyboard converters, but the teensy is when certain arduino's also have the HID functionality necessary? Is the teensy easier to code on?
The Teensy is easier to flash as it has a friendly gui but I've used this on an Arduino Micro (official, not the smaller cheap pro micro) with no problem and I expect TMK and Soarer's would work too. Pretty sure the Micro is a Leonardo miniaturised so you should be fine, though it's a bit big to fit in a keyboard case...
ohh... so tmk and soarer's would work on arduino's with the u4 chips?
-
You can use whatever - if it works it's good, if it doesn't it errors so no harm done :)
If TMK worked with FLiP it's the EasyAVR bit that didn't, try it again to check it wasn't a random flashing failure and if still no joy I'll have a look tonight what's special about the Nerd in the TMK config.
ok, i dl'ed and flashed the hexfile again. same result, nerd_lufa.hex works, nerd.hex doesnt. same errormessage as last time.
Flashed the dodgy hex to my GH60 - strange things happened. Flashed it to an empty Arduino - nothing happened, but keypresses don't register when I short pins and lsusb won't run even after disconnecting it. Very strange.
Sadly I've run out of day, will have another look tomorrow.
good luck and see you later :)
Problem 1 identified - I used the 60% firmware when the matrix needs Costar. Looking at TMK makefile I don't see anything different between the Nerd and GH60 so this should work, or at least show up as a keyboard even if it doesn't output anything...
bad news - still the same behavior
[ 210.119025] usb 2-1.2: new full-speed USB device number 9 using ehci-pci
[ 210.191022] usb 2-1.2: device descriptor read/64, error -32
[ 210.367023] usb 2-1.2: device descriptor read/64, error -32
[ 210.543027] usb 2-1.2: new full-speed USB device number 10 using ehci-pci
[ 210.615024] usb 2-1.2: device descriptor read/64, error -32
[ 210.791024] usb 2-1.2: device descriptor read/64, error -32
[ 210.966971] usb 2-1.2: new full-speed USB device number 11 using ehci-pci
[ 211.375006] usb 2-1.2: device not accepting address 11, error -32
[ 211.447031] usb 2-1.2: new full-speed USB device number 12 using ehci-pci
[ 211.855009] usb 2-1.2: device not accepting address 12, error -32
[ 211.855244] usb 2-1-port2: unable to enumerate USB device
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
things i did: reflashed the bootloader, flashed the file with flip, set the fuses again...
-
ohh... so tmk and soarer's would work on arduino's with the u4 chips?
Should do, yet I just tried the working Nerd hex from TMK on the arduino and it didn't work. You have to compile tmk so it could be made to...
I don't see why anyone would want to mess around in text files when there's a helpful gui available and EasyAVR just works though, the only exception is the bootloader key doesn't work so you need to use the physical button on the PCB to reflash.
Whatever the reason this doesn't work I suspect it's the same thing causing both issues - time to become an AVR expert and work out why!
-
...
bad news - still the same behavior
...
Ok I had a read and there really isn't much voodoo going on when it comes to bootloaders so I went back to the config and found I was still being dumb. TMK uses 8 columns but the EasyAVR Costar is setup for 8 rows so I swapped them over and it now flashes to my GH60 (which has the same bootloader but not sure about fuses) and it shows up as a keyboard and nothing strange happens - please try the attached.
-
ohh... so tmk and soarer's would work on arduino's with the u4 chips?
Should do, yet I just tried the working Nerd hex from TMK on the arduino and it didn't work. You have to compile tmk so it could be made to...
I don't see why anyone would want to mess around in text files when there's a helpful gui available and EasyAVR just works though, the only exception is the bootloader key doesn't work so you need to use the physical button on the PCB to reflash.
Whatever the reason this doesn't work I suspect it's the same thing causing both issues - time to become an AVR expert and work out why!
I'm thinking about modding a keyboard, and I'd like to use TMK as a base for controlling other physical things to the keyboard so I'd be extending the codebase.
-
Hi - Is there any way to detect from the computer when a FN (layer key) is pressed? Alternatively is it possible to also send a seldom used scan code (like F20 for example) when a FN key is pressed/released?
The reasoning behind this is that I would like to be able to pop-up a layer map on my monitor when I enter a different layer (while learning to use a 40%).
Thanks.
Sorry to say there isn't any way to do this as the FN key is used by the keyboard controller to work out what characters should be sent to the computer, so it is handled internally. In theory you could modify the source code to send a character and recompile it but that's far from "Easy" so you're probably better off doing it the old fashioned way - printed copies of each layer's keymap or tall keycaps with stickers on the front.
The joys of 40% life, I'm still to master doing anything beyond chatting on mine after over a year so I can only wish you luck!
Thanks for the information. The code was easy enough to understand / modify for this scenario (just enqueue/delete a secondary key within the fn_down/up methods). But I haven't quite figured out incorporating this firmware build into the actual GUI software... hmm
-
One somewhat easy way is to setup a a key as an obscure key combo. Then use hotkey to act based on the hotkey, like open up an image for 2 seconds and then close the window.
-
Hi - Is there any way to detect from the computer when a FN (layer key) is pressed? Alternatively is it possible to also send a seldom used scan code (like F20 for example) when a FN key is pressed/released?
The reasoning behind this is that I would like to be able to pop-up a layer map on my monitor when I enter a different layer (while learning to use a 40%).
Thanks.
Sorry to say there isn't any way to do this as the FN key is used by the keyboard controller to work out what characters should be sent to the computer, so it is handled internally. In theory you could modify the source code to send a character and recompile it but that's far from "Easy" so you're probably better off doing it the old fashioned way - printed copies of each layer's keymap or tall keycaps with stickers on the front.
The joys of 40% life, I'm still to master doing anything beyond chatting on mine after over a year so I can only wish you luck!
Thanks for the information. The code was easy enough to understand / modify for this scenario (just enqueue/delete a secondary key within the fn_down/up methods). But I haven't quite figured out incorporating this firmware build into the actual GUI software... hmm
Ooh, an interested coder!
At the top of each board's config file there's a line like this, assuming what you're modifying makes these firmware files you'd just need to put the right one in the builds directory and it should pick it up.
import easykeymap.templates.ATmega32U4_16MHz_COSTAR as firmware
This is pure guesswork but worth a try :)
-
Ooh, an interested coder!
At the top of each board's config file there's a line like this, assuming what you're modifying makes these firmware files you'd just need to put the right one in the builds directory and it should pick it up.
import easykeymap.templates.ATmega32U4_16MHz_COSTAR as firmware
This is pure guesswork but worth a try :)
Thanks for the help, that makes sense. I have it working now.
-
...
bad news - still the same behavior
...
Ok I had a read and there really isn't much voodoo going on when it comes to bootloaders so I went back to the config and found I was still being dumb. TMK uses 8 columns but the EasyAVR Costar is setup for 8 rows so I swapped them over and it now flashes to my GH60 (which has the same bootloader but not sure about fuses) and it shows up as a keyboard and nothing strange happens - please try the attached.
sorry to inform you, but... still the same :( i doubletried it, and, to verify the whole process again, flashed nerd_lufa.hex (with success).
-
...
bad news - still the same behavior
...
Ok I had a read and there really isn't much voodoo going on when it comes to bootloaders so I went back to the config and found I was still being dumb. TMK uses 8 columns but the EasyAVR Costar is setup for 8 rows so I swapped them over and it now flashes to my GH60 (which has the same bootloader but not sure about fuses) and it shows up as a keyboard and nothing strange happens - please try the attached.
sorry to inform you, but... still the same :( i doubletried it, and, to verify the whole process again, flashed nerd_lufa.hex (with success).
I think I need to get an ISP thing to check/tweak the fuses on my GH60...
-
Thanks for the help, that makes sense. I have it working now.
I have the proof of concept working really well now:
- When a function key is pressed down it sends a unique hotkey (using the queue_autokeys function).
- My background application has a global hook for the hotkey and displays a small semi-transparent overlay image of the function layer's layout.
- When released, the same hotkey triggers the window to hide.
Now I'm on my way to 40% proficiency!!
Thanks for the assistance.
-
Thanks for the help, that makes sense. I have it working now.
I have the proof of concept working really well now:
- When a function key is pressed down it sends a unique hotkey (using the queue_autokeys function).
- My background application has a global hook for the hotkey and displays a small semi-transparent overlay image of the function layer's layout.
- When released, the same hotkey triggers the window to hide.
Now I'm on my way to 40% proficiency!!
Thanks for the assistance.
Sounds Awesome! I'm preparing to do something like this too - old terminal computers had the lock status on screen too! Will you open source your code? github?
-
Sounds Awesome! I'm preparing to do something like this too - old terminal computers had the lock status on screen too! Will you open source your code? github?
Definitely, I'll make the project available. You can see the (extremely minor) addition that was hard-coded into keymap.c to send the hotkeys here (https://github.com/Andrew-Hanlon/EasyAVR/commit/f939d4c0a17dd44b596fc4d684c8404987833a9f#diff-07869af8ae5de8304b4ae0b4d3038572). Even if set-up to be read from the config file, I don't know if this would ever be mainstream enough to warrant inclusion in the main branch...
The overlay code was just a 5 minute POC in C#/WPF, but I'll put it up when I can. The idea was just to use the keyboard-layout-editor (http://www.keyboard-layout-editor.com/##@_backcolor=%23000000&radii=5px&css=%3B&@_c=%2363696a&t=%23e4dedd&sm=cherry&a:7%3B&=ESC&_c=%23e4dedd&t=%23212224&f:9%3B&=Q&=W&=E&=R&=T&=Y&=U&=I&=O&=P&_c=%2363696a&t=%23e4dedd&f:2%3B&=BACK%20SPACE%3B&@_f:3&w:1.25%3B&=TAB&_c=%23e4dedd&t=%23212224&f:9%3B&=A&=S&=D&=F&=G&=H&=J&=K&=L&_c=%2363696a&t=%23e4dedd&f:3&w:1.75%3B&=RETURN%3B&@_w:1.75%3B&=SHIFT&_c=%23e4dedd&t=%23212224&f:9%3B&=Z&=X&=C&=V&=B&=N&=M&_a:5&f:4%3B&=%3E%0A%E2%80%A2&_c=%2363696a&t=%23e4dedd&a:7&f:3%3B&=UP&_w:1.25%3B&=SHIFT%3B&@=CTRL&=WIN&=ALT&_w:1.25%3B&=META&_c=%23e4dedd&t=%23212224&w:1.75%3B&=CONTROL&_w:1.75%3B&=SHIFT&_c=%2363696a&t=%23e4dedd&w:1.25%3B&=FUN&=LEFT&=DOWN&=RIGHT) and download the pngs to use as overlays.
-
you know... thinking about it, maybe auto hot keys could be configured to do something like this? it has graphical overlay functionality and you can configure the opacity for the overlay.
and that website really needs a dvorak preset for the buttons!
UPDATE:
here's some auto hot keys code i was screwing about with for a semi-transparent overlay, the opacity level is controlled with the winset line - 0-255 I believe. Adjust width/height to measure, and of course change the triggering response - here's it's ctrl+shift+f5 - you'd want to accept some kind of input for which image to show.
also, not sure how to close the overlay!
^+f5::
#Persistent
#SingleInstance, Force
Gui, Add, Picture, x0 y0 w400 h400, C:\path\to\image.png
; Removes the Border and Task bar icon
Gui, +ToolWindow -Caption ;+AlwaysOnTop
Gui, Show, W400 H400, Test
WinSet, Transparent, 180, Test
Return
-
you know... thinking about it, maybe auto hot keys could be configured to do something like this? it has graphical overlay functionality and you can configure the opacity for the overlay.
and that website really needs a dvorak preset for the buttons!
UPDATE:
here's some auto hot keys code i was screwing about with for a semi-transparent overlay, the opacity level is controlled with the winset line - 0-255 I believe. Adjust width/height to measure, and of course change the triggering response - here's it's ctrl+shift+f5 - you'd want to accept some kind of input for which image to show.
also, not sure how to close the overlay!
That's an cool idea using AutoHotKey - though I personally don't know/use it much.
I'll probably stick to .net for the overlay as it makes it easy to put together a GUI for selecting layer images and settings.
In my PoC I was using an on/off toggle action to show/hide the window using the same hotkey. The other thing to check w/ AHK is how to set the extended transparency mode so that the window doesn't intercept mouse gestures or steal focus.
Cheers!
-
I'll probably stick to .net for the overlay as it makes it easy to put together a GUI for selecting layer images and settings.
In my PoC I was using an on/off toggle action to show/hide the window using the same hotkey. The other thing to check w/ AHK is how to set the extended transparency mode so that the window doesn't intercept mouse gestures or steal focus.
Cheers!
you can set whether a window ahk creates is always on top or not (default is not to be always on top) and as it's just showing an image, it doesn't care for mouse gestures as there's nothing to click on.
as for toggling on / off using the same shortcut, it's something i've done. you can just set a variable state for the overlay window display state, and show / close it as necessary
-
tedk - after spending a couple of hours trying to get one of a pair of dodgy raspberry pis to boot, let alone work as an ISP programmer, I've given up and ordered one. Not sure how long shipping from Poland takes but just so you know I've not forgotten you.
-
tedk - after spending a couple of hours trying to get one of a pair of dodgy raspberry pis to boot, let alone work as an ISP programmer, I've given up and ordered one. Not sure how long shipping from Poland takes but just so you know I've not forgotten you.
Could you use the zero? they're surely shipped from wales?
-
tedk - after spending a couple of hours trying to get one of a pair of dodgy raspberry pis to boot, let alone work as an ISP programmer, I've given up and ordered one. Not sure how long shipping from Poland takes but just so you know I've not forgotten you.
Could you use the zero? they're surely shipped from wales?
Probably, but it's been ages since I played with Pis and I'm struggling somewhere between incompatible SD cards, dead Pi (LEDs are gone on one so can't tell what it thinks it's doing, the other doesn't flash to show I/O but that LED may be dead too...) and a broken HDMI cable (yes, there's only one in the house and it's rarely used!) - if I'm spending money I'd may as well get a dedicated flasher.
-
tedk - after spending a couple of hours trying to get one of a pair of dodgy raspberry pis to boot, let alone work as an ISP programmer, I've given up and ordered one. Not sure how long shipping from Poland takes but just so you know I've not forgotten you.
hey suicidal_orange, no problem and thanks for the update :thumb: i'll be ready for new testing :)
-
I made a keymap and compiled firmware for the Teensy-based GH-122 PCB this weekend. Everything looks good except the numpad Column 22 (/852) connected to pin D0 fails to register keypresses. I seem to recall samwisekoi having a similar issue in the first iteration of this PCB and working closely with metalliqaz on it. Could this issue have carried over to the current version of EasyAVR? I have good continuity from D0 through the entire column on the PCB, so I'm pretty sure the hardware is good. Any idea what this might be?
Ron hasn't logged on in a month so I haven't been able to ping him about this yet. :(
-
So, I made this new Kitten Paw https://geekhack.org/index.php?topic=46700.msg2218454#msg2218454
Can someone please add it to Easy AVR for me? =) I don't know how to create pull-requests and all that =P
I think I got this all correct http://pastebin.com/sEw9H7Mw
-
So, I made this new Kitten Paw https://geekhack.org/index.php?topic=46700.msg2218454#msg2218454
Can someone please add it to Easy AVR for me? =) I don't know how to create pull-requests and all that =P
I think I got this all correct http://pastebin.com/sEw9H7Mw
It would be better if it was confirmed working first, if you have a board to test on?
Not sure Metaliqaz is checking this thread or the pull requests, haven't seen him for a while :(
-
He's engrossed in Doom
-
He's engrossed in Doom
:))
-
So, I made this new Kitten Paw https://geekhack.org/index.php?topic=46700.msg2218454#msg2218454
Can someone please add it to Easy AVR for me? =) I don't know how to create pull-requests and all that =P
I think I got this all correct http://pastebin.com/sEw9H7Mw
It would be better if it was confirmed working first, if you have a board to test on?
Not sure Metaliqaz is checking this thread or the pull requests, haven't seen him for a while :(
I can test it. I have the board. I'm not sure I know how to compile it though... I'll look into it further tomorrow.
-
So, I made this new Kitten Paw https://geekhack.org/index.php?topic=46700.msg2218454#msg2218454
Can someone please add it to Easy AVR for me? =) I don't know how to create pull-requests and all that =P
I think I got this all correct http://pastebin.com/sEw9H7Mw
It would be better if it was confirmed working first, if you have a board to test on?
Not sure Metaliqaz is checking this thread or the pull requests, haven't seen him for a while :(
I can test it. I have the board. I'm not sure I know how to compile it though... I'll look into it further tomorrow.
Great! All you need to do is run the keymapper and close it, then copy the .py to c:\users\username\.EasyAVR\boards (~/.EasyAVR/boards/ on Linux) and it will show up next time you run the keymapper, select compile from the file menu to generate the hex. If you're on Windows and have the flasher you need installed compile and flash should work too.
Or you can flash the attached .hex manually - it compiled which is better than all my first attempts :))
-
I had a very good template from the previous version which I followed very very carefully =) Still I messed a small thing up, which I've fixed now.
This version is working perfectly as far as I can tell
http://pastebin.com/JkUkfTk8
Thanks for your help orange. It was pretty straight forward. Hoping it will be added to the github repository soon. Putting the pastebin file in .EasyAVR/boards/ will work in the meantime.
-
Hi. I ve had a blast in putting my GH60 together, its my first modern mechanical keyboard. It replaces my 90s model M clone with a big ass enter key. Right now I'm configuring it to my liking but I'm stuck.
I'm trying to configure tap key mode but I don't have a clue how to do this. I just can't figure out how to get it to work. I basically want character keys to do capitals when in tap key mode. It would be great if someone could help me out.
And there's this other thing I came across. I don't know if its a bug, or a hardware thing, or just me and my ISO/ANSI hybrid layout (see: http://www.keyboard-layout-editor.com/#/gists/62e126126cb2c9d78816b839fadaf3e1)
As you can see I have a right shift key with a key on the right of it. The thing is that they're mixed up. When I configure them normally in Easy AVR the shift key does what the other key is supposed to do (output \) and that key does 'shift'. I've fixed it by programming them the other way around in Easy AVR but I figured that if it is a bug it could be fixed.
Great piece of software btw. My compliments.
-
Hi. I ve had a blast in putting my GH60 together, its my first modern mechanical keyboard. It replaces my 90s model M clone with a big ass enter key. Right now I'm configuring it to my liking but I'm stuck.
I'm trying to configure tap key mode but I don't have a clue how to do this. I just can't figure out how to get it to work. I basically want character keys to do capitals when in tap key mode. It would be great if someone could help me out.
And there's this other thing I came across. I don't know if its a bug, or a hardware thing, or just me and my ISO/ANSI hybrid layout (see: http://www.keyboard-layout-editor.com/#/gists/62e126126cb2c9d78816b839fadaf3e1)
As you can see I have a right shift key with a key on the right of it. The thing is that they're mixed up. When I configure them normally in Easy AVR the shift key does what the other key is supposed to do (output \) and that key does 'shift'. I've fixed it by programming them the other way around in Easy AVR but I figured that if it is a bug it could be fixed.
Great piece of software btw. My compliments.
The shift key is my fault - I use a big FN key on the edge of the board and if you do that they swap positions - my version made it into the official release :-[
As for the tap key mode I'm not sure exactly what you want, maybe one of these? Should help you understand how it works at least :)
Copy the layer you want to output caps instead and paste it to a new layer, then set the FN to 'toggle' mode so you can switch layer without having to hold the FN. Either you can tick 'with mods: shift' on the FN which will change 1 to ! etc as well, or you can select each letter and tick it which will only effect the letters.
-
Hi. I ve had a blast in putting my GH60 together, its my first modern mechanical keyboard. It replaces my 90s model M clone with a big ass enter key. Right now I'm configuring it to my liking but I'm stuck.
I'm trying to configure tap key mode but I don't have a clue how to do this. I just can't figure out how to get it to work. I basically want character keys to do capitals when in tap key mode. It would be great if someone could help me out.
And there's this other thing I came across. I don't know if its a bug, or a hardware thing, or just me and my ISO/ANSI hybrid layout (see: http://www.keyboard-layout-editor.com/#/gists/62e126126cb2c9d78816b839fadaf3e1)
As you can see I have a right shift key with a key on the right of it. The thing is that they're mixed up. When I configure them normally in Easy AVR the shift key does what the other key is supposed to do (output \) and that key does 'shift'. I've fixed it by programming them the other way around in Easy AVR but I figured that if it is a bug it could be fixed.
Great piece of software btw. My compliments.
The shift key is my fault - I use a big FN key on the edge of the board and if you do that they swap positions - my version made it into the official release :-[
As for the tap key mode I'm not sure exactly what you want, maybe one of these? Should help you understand how it works at least :)
Copy the layer you want to output caps instead and paste it to a new layer, then set the FN to 'toggle' mode so you can switch layer without having to hold the FN. Either you can tick 'with mods: shift' on the FN which will change 1 to ! etc as well, or you can select each letter and tick it which will only effect the letters.
I suppose I have a wrong concept of what tap key does. I thought that tap key mode would mean I could press a key for a longer period and it would return a different result than with a normal key tap.
So for example pressing the 'q' key for a longer period would result in 'Q' instead of 'q'. (long press on the q key is shift basically)
I do understand your example and how to set it up (although its not what I was looking for) but I still don't understand what I can use tap key mode for.
-
I suppose I have a wrong concept of what tap key does. I thought that tap key mode would mean I could press a key for a longer period and it would return a different result than with a normal key tap.
So for example pressing the 'q' key for a longer period would result in 'Q' instead of 'q'. (long press on the q key is shift basically)
I do understand your example and how to set it up (although its not what I was looking for) but I still don't understand what I can use tap key mode for.
Oh I see, that sounds rather useful actually. Sadly it's not supported, but all the code you would need is in there because 'hold to do something different' is what tap key mode does - if you tap a modifier key (ctrl, shift FN etc) it will output a character, but only if you don't press another key before releasing the mod and don't hold it too long.
This is useful on really small boards to give keys two functions and full size boards which are shared with someone who expects each key to do it's standard function - they will never press ctrl and insert, so ctrl becomes a 'with mod: ctrl' standard FN and on that layer insert could be a 'toggle' FN to a colemack layer or whatever.
I'll have a look when I get some free time (hopfully tonight) but it will need some testing.
-
I suppose I have a wrong concept of what tap key does. I thought that tap key mode would mean I could press a key for a longer period and it would return a different result than with a normal key tap.
So for example pressing the 'q' key for a longer period would result in 'Q' instead of 'q'. (long press on the q key is shift basically)
I do understand your example and how to set it up (although its not what I was looking for) but I still don't understand what I can use tap key mode for.
Oh I see, that sounds rather useful actually. Sadly it's not supported, but all the code you would need is in there because 'hold to do something different' is what tap key mode does - if you tap a modifier key (ctrl, shift FN etc) it will output a character, but only if you don't press another key before releasing the mod and don't hold it too long.
This is useful on really small boards to give keys two functions and full size boards which are shared with someone who expects each key to do it's standard function - they will never press ctrl and insert, so ctrl becomes a 'with mod: ctrl' standard FN and on that layer insert could be a 'toggle' FN to a colemack layer or whatever.
I'll have a look when I get some free time (hopefully tonight) but it will need some testing.
Aahh, thank you for your explanation. Its taken me some thinking and some experimenting before I finally understood. It allows me to use a FN key as a Caps Lock key as well for instance. Just what I was looking for. :)
Do you mean you'll look into my idea? If so, that would be amazing.
-
I suppose I have a wrong concept of what tap key does. I thought that tap key mode would mean I could press a key for a longer period and it would return a different result than with a normal key tap.
So for example pressing the 'q' key for a longer period would result in 'Q' instead of 'q'. (long press on the q key is shift basically)
I do understand your example and how to set it up (although its not what I was looking for) but I still don't understand what I can use tap key mode for.
Oh I see, that sounds rather useful actually. Sadly it's not supported, but all the code you would need is in there because 'hold to do something different' is what tap key mode does - if you tap a modifier key (ctrl, shift FN etc) it will output a character, but only if you don't press another key before releasing the mod and don't hold it too long.
This is useful on really small boards to give keys two functions and full size boards which are shared with someone who expects each key to do it's standard function - they will never press ctrl and insert, so ctrl becomes a 'with mod: ctrl' standard FN and on that layer insert could be a 'toggle' FN to a colemack layer or whatever.
I'll have a look when I get some free time (hopefully tonight) but it will need some testing.
Aahh, thank you for your explanation. Its taken me some thinking and some experimenting before I finally understood. It allows me to use a FN key as a Caps Lock key as well for instance. Just what I was looking for. :)
Do you mean you'll look into my idea? If so, that would be amazing.
That's a shame - would have been easier to substitute the new tap key mode for the old one, adding another mode involves not only making the mode itself work but somehow adding it to the GUI. Unless you would be happy with this being the default behavior? That would probably be easier...
I should warn you that I'm yet to mess with the actual code behind this so I'm not saying it will be anytime soon, but I will make it work :))
-
I suppose I have a wrong concept of what tap key does. I thought that tap key mode would mean I could press a key for a longer period and it would return a different result than with a normal key tap.
So for example pressing the 'q' key for a longer period would result in 'Q' instead of 'q'. (long press on the q key is shift basically)
I do understand your example and how to set it up (although its not what I was looking for) but I still don't understand what I can use tap key mode for.
Oh I see, that sounds rather useful actually. Sadly it's not supported, but all the code you would need is in there because 'hold to do something different' is what tap key mode does - if you tap a modifier key (ctrl, shift FN etc) it will output a character, but only if you don't press another key before releasing the mod and don't hold it too long.
This is useful on really small boards to give keys two functions and full size boards which are shared with someone who expects each key to do it's standard function - they will never press ctrl and insert, so ctrl becomes a 'with mod: ctrl' standard FN and on that layer insert could be a 'toggle' FN to a colemack layer or whatever.
I'll have a look when I get some free time (hopefully tonight) but it will need some testing.
Aahh, thank you for your explanation. Its taken me some thinking and some experimenting before I finally understood. It allows me to use a FN key as a Caps Lock key as well for instance. Just what I was looking for. :)
Do you mean you'll look into my idea? If so, that would be amazing.
That's a shame - would have been easier to substitute the new tap key mode for the old one, adding another mode involves not only making the mode itself work but somehow adding it to the GUI. Unless you would be happy with this being the default behavior? That would probably be easier...
I should warn you that I'm yet to mess with the actual code behind this so I'm not saying it will be anytime soon, but I will make it work :))
Well, I would still prefer my idea because that would mean I could do without Rshift and keep my layout the way I imagined it. :D Personally I like to use multiple keys as little as possible.
To be honest, I don't know my preference yet because I'm not experienced enough with Easy AVR and all of its features. I just finished my KB this last week and have been busy figuring out how to optimally use Easy AVR to program it. Hence my questions these last days. But in general I think it would be best if it's added to the GUI as an extra new mode.
But I understand that you do all this in your spare time and I don't have a clue how time consuming such an endeavor might be. And I have not much to offer myself in return so I'm happy with whichever you decide. It's all much appreciated.
EDIT: maybe you can associate it with the rapidfire mode in the GUI instead of the tap key mode. I wouldn't know why I would need rapidfire.
-
EDIT: maybe you can associate it with the rapidfire mode in the GUI instead of the tap key mode. I wouldn't know why I would need rapidfire.
This is a great idea, I think I've done it but have no idea how to make it compile all the different versions - it's only outputting a single 'firmware.hex'.
Can anyone who's compiled this tell me what I'm missing? I'm in Atmel Studio 7.
-
EDIT: maybe you can associate it with the rapidfire mode in the GUI instead of the tap key mode. I wouldn't know why I would need rapidfire.
This is a great idea, I think I've done it but have no idea how to make it compile all the different versions - it's only outputting a single 'firmware.hex'.
Can anyone who's compiled this tell me what I'm missing? I'm in Atmel Studio 7.
That's amazing! Can't wait till I can use it. I have this idea of turning a numpad into a full mini keyboard which could make good use of this feature.
-
tedk - after spending a couple of hours trying to get one of a pair of dodgy raspberry pis to boot, let alone work as an ISP programmer, I've given up and ordered one. Not sure how long shipping from Poland takes but just so you know I've not forgotten you.
hey suicidal_orange, no problem and thanks for the update :thumb: i'll be ready for new testing :)
I have a programmer and it works! Flashed my Arduino Micro to the standard Atmel bootloader and did the fuses, then flashed it to a Teensy (the button didn't work) and now it's back to being an Arduino which registers as a keyboard, but I still can't get any keypresses to output. More playing required...
-
tedk - after spending a couple of hours trying to get one of a pair of dodgy raspberry pis to boot, let alone work as an ISP programmer, I've given up and ordered one. Not sure how long shipping from Poland takes but just so you know I've not forgotten you.
hey suicidal_orange, no problem and thanks for the update :thumb: i'll be ready for new testing :)
I have a programmer and it works! Flashed my Arduino Micro to the standard Atmel bootloader and did the fuses, then flashed it to a Teensy (the button didn't work) and now it's back to being an Arduino which registers as a keyboard, but I still can't get any keypresses to output. More playing required...
hey good news :) how is it going?
-
The Mouse Function is amazing! It would be better with Wheel Up and Down key.
-
tedk - after spending a couple of hours trying to get one of a pair of dodgy raspberry pis to boot, let alone work as an ISP programmer, I've given up and ordered one. Not sure how long shipping from Poland takes but just so you know I've not forgotten you.
hey suicidal_orange, no problem and thanks for the update :thumb: i'll be ready for new testing :)
I have a programmer and it works! Flashed my Arduino Micro to the standard Atmel bootloader and did the fuses, then flashed it to a Teensy (the button didn't work) and now it's back to being an Arduino which registers as a keyboard, but I still can't get any keypresses to output. More playing required...
hey good news :) how is it going?
Eh.. It was frustrating so I did something else, and now it's next weekend already :confused:
Just had another look and found a stupid error - there are row and column counts that I didn't swap ages ago when I swapped the pins. Fixed that and flashed it to my Arduino (with Arduino bootloader) and it outputs an R key when it should - progress at last!
It does not work with the Atmel bootloader on my Arduino though, so I can only suggest you Nerd to Arduino (configure USBasp in the arduino gui and then 'burn bootloader') then you'll need to flash the firmware with avrdude. Then, if you're lucky, some keys will actually work! If not please short a switch to the other side of it's diode to confirm it's just a config issue.
-
anyone knows how to activate the Planck LED?
Any key?
appreciate
-
anyone knows how to activate the Planck LED?
Any key?
appreciate
In the keymapper go to 'View' at the top then 'LED configuration', then you can choose when it lights up :)
-
anyone knows how to activate the Planck LED?
Any key?
appreciate
In the keymapper go to 'View' at the top then 'LED configuration', then you can choose when it lights up :)
thx
-
So I see TechKeys sells the GH60 PCB
http://techkeys.us/collections/accessories/products/gh60
According the wiki here (http://"https://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware"), the Easy AVR supports Rev B, this one is Rev C. Will it work? And if not, can someone direct me to a 60% pcb, that has LED solder points, and is supported by this configurator?
-
So I see TechKeys sells the GH60 PCB
http://techkeys.us/collections/accessories/products/gh60
According the wiki here (http://"https://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware"), the Easy AVR supports Rev B, this one is Rev C. Will it work? And if not, can someone direct me to a 60% pcb, that has LED solder points, and is supported by this configurator?
Rev. C is just minor bug fixes from Rev. B, and both have the same schematic.
-
Rev. C is just minor bug fixes from Rev. B, and both have the same schematic.
So, I can build my Ducky Mini and Poker 3 love child then? :D
Sweeeeeeeet, thanks a bunch
-
Is there a way to use special French character using this. Like É È À and so on?
-
Is there a way to use special French character using this. Like É È À and so on?
The only way is with a macro Alt-code.
Those special characters are from the Unicode extended character set. It's not possible to send them to the PC using standard USB/PS2 scan codes.
-
tedk - after spending a couple of hours trying to get one of a pair of dodgy raspberry pis to boot, let alone work as an ISP programmer, I've given up and ordered one. Not sure how long shipping from Poland takes but just so you know I've not forgotten you.
hey suicidal_orange, no problem and thanks for the update :thumb: i'll be ready for new testing :)
I have a programmer and it works! Flashed my Arduino Micro to the standard Atmel bootloader and did the fuses, then flashed it to a Teensy (the button didn't work) and now it's back to being an Arduino which registers as a keyboard, but I still can't get any keypresses to output. More playing required...
hey good news :) how is it going?
Eh.. It was frustrating so I did something else, and now it's next weekend already :confused:
Just had another look and found a stupid error - there are row and column counts that I didn't swap ages ago when I swapped the pins. Fixed that and flashed it to my Arduino (with Arduino bootloader) and it outputs an R key when it should - progress at last!
It does not work with the Atmel bootloader on my Arduino though, so I can only suggest you Nerd to Arduino (configure USBasp in the arduino gui and then 'burn bootloader') then you'll need to flash the firmware with avrdude. Then, if you're lucky, some keys will actually work! If not please short a switch to the other side of it's diode to confirm it's just a config issue.
still the same problem - tried to flash the micro bootloader (Caterina-Micro.hex), but no success. Kernel throws the usual errors. Had a thought, maybe still a fuses problem? Does the Arduino Micro Bootloader even work on the nerd60? Sorry for the long time to answer, my job eats up my time and im too tired to work on the keyboard in the evening.
-
still the same problem - tried to flash the micro bootloader (Caterina-Micro.hex), but no success. Kernel throws the usual errors. Had a thought, maybe still a fuses problem? Does the Arduino Micro Bootloader even work on the nerd60? Sorry for the long time to answer, my job eats up my time and im too tired to work on the keyboard in the evening.
Hmm... can't say I'm entirely sure on the fuses - I ran the command in the guide so assumed we were in the same place. The NerD is just a circuit built around an atmega32u4 so I don't see why the arduino bootloader wouldn't work, unless it's the extra letters at the end...
I'm going to extract this conversation to it's own thread in the hope of attracting some AVR experts.
-
I've successfully added a caps lock led to my GH60 rev c and Ive been able to activate it in Easy AVR so that's good. But...
The PCB also allows for 'poker arrow' leds (R-alt, R-win, R-ctrl, R-shift) but I don't see any options for this in Easy AVR. Is it not supported?
-
I've successfully added a caps lock led to my GH60 rev c and Ive been able to activate it in Easy AVR so that's good. But...
The PCB also allows for 'poker arrow' leds (R-alt, R-win, R-ctrl, R-shift) but I don't see any options for this in Easy AVR. Is it not supported?
Not sure what went wrong but the version of the GH60 included is not correct - it has the right split shift the wrong way round. Didn't realise it was missing LEDs too though!
Please find attached a corrected version which will show up as GH60F in the boards list, if the Poker arrows still don't work use 'Fn Key' and please let me know :thumb:
-
I've successfully added a caps lock led to my GH60 rev c and Ive been able to activate it in Easy AVR so that's good. But...
The PCB also allows for 'poker arrow' leds (R-alt, R-win, R-ctrl, R-shift) but I don't see any options for this in Easy AVR. Is it not supported?
Not sure what went wrong but the version of the GH60 included is not correct - it has the right split shift the wrong way round. Didn't realise it was missing LEDs too though!
Please find attached a corrected version which will show up as GH60F in the boards list, if the Poker arrows still don't work use 'Fn Key' and please let me know :thumb:
Hi, I don't know what to to with that Python file. How do I use it?
-
I've successfully added a caps lock led to my GH60 rev c and Ive been able to activate it in Easy AVR so that's good. But...
The PCB also allows for 'poker arrow' leds (R-alt, R-win, R-ctrl, R-shift) but I don't see any options for this in Easy AVR. Is it not supported?
Not sure what went wrong but the version of the GH60 included is not correct - it has the right split shift the wrong way round. Didn't realise it was missing LEDs too though!
Please find attached a corrected version which will show up as GH60F in the boards list, if the Poker arrows still don't work use 'Fn Key' and please let me know :thumb:
Hi, I don't know what to to with that Python file. How do I use it?
Get the Python version of EasyAVR from here (https://github.com/dhowland/EasyAVR). Drop that gh60.py file into the /EasyAVR/keymapper/easykeymap/boards/ directory. Assuming you already have Python installed, run EasyAVR with run.bat (Windows) or easykeymap.sh (Linux)
-
Hi, I don't know what to to with that Python file. How do I use it?
Get the Python version of EasyAVR from here (https://github.com/dhowland/EasyAVR). Drop that gh60.py file into the /EasyAVR/keymapper/easykeymap/boards/ directory. Assuming you already have Python installed, run EasyAVR with run.bat (Windows) or easykeymap.sh (Linux)
It worked, thanks!
I've successfully added a caps lock led to my GH60 rev c and Ive been able to activate it in Easy AVR so that's good. But...
The PCB also allows for 'poker arrow' leds (R-alt, R-win, R-ctrl, R-shift) but I don't see any options for this in Easy AVR. Is it not supported?
Not sure what went wrong but the version of the GH60 included is not correct - it has the right split shift the wrong way round. Didn't realise it was missing LEDs too though!
Please find attached a corrected version which will show up as GH60F in the boards list, if the Poker arrows still don't work use 'Fn Key' and please let me know :thumb:
The right split shift is still the wrong way around. :(
I got confused about the poker keys I didn't realize they were WASD. So I wont be installing Leds there. Maybe someone else can try it out?
-
The right split shift is still the wrong way around. :(
Did you make your board with the 1u or the 1.75u on the edge of the board? I have the 1.75 on the edge and it's always been backwards, but everyone else has the 1u on the edge and says the default is backwards. Perhaps the layout displayed in the keymapper is not accurate and I'm using the unfixed config thinking it's the fixed one because I'm loading a layout... Attached is a version where they're swapped from the last file so it must be right for whatever you have - please confirm which that is :confused:
-
The right split shift is still the wrong way around. :(
Did you make your board with the 1u or the 1.75u on the edge of the board? I have the 1.75 on the edge and it's always been backwards, but everyone else has the 1u on the edge and says the default is backwards. Perhaps the layout displayed in the keymapper is not accurate and I'm using the unfixed config thinking it's the fixed one because I'm loading a layout... Attached is a version where they're swapped from the last file so it must be right for whatever you have - please confirm which that is :confused:
I take it you mean key size? I have 1u on the edge. I've downloaded your attached file and now it works correctly.
-
I've successfully added a caps lock led to my GH60 rev c and Ive been able to activate it in Easy AVR so that's good. But...
The PCB also allows for 'poker arrow' leds (R-alt, R-win, R-ctrl, R-shift) but I don't see any options for this in Easy AVR. Is it not supported?
Not sure what went wrong but the version of the GH60 included is not correct - it has the right split shift the wrong way round. Didn't realise it was missing LEDs too though!
Please find attached a corrected version which will show up as GH60F in the boards list, if the Poker arrows still don't work use 'Fn Key' and please let me know :thumb:
Ok, it's official. I'm an eedjit. There's WASD ánd Poker keys on the GH60.
I've added LEDs to the poker keys (so R-alt, R-win, R-ctrl, R-shift) but they're in a constant state of being 'on'. Even when I power down my PC they stay on and I have to unplug the kb for them to go off.
I did some experimenting to see if I could change this.
-Making them WASD in easy AVR got me the same result.
-Making each of them a seperate FN key (with toggle) and select arrow keys on the respective layers. Same result except that it lights up the FN key as well when pressing one of the keys. (which is not what I want) Silly thing is only left arrow works.
Could it be a hardware issue? Something I did wrong with soldering in the LEDs and resistors or maybe it's just not hardware supported?
If it's not a hardware thingy and I'm not overlooking a setting in Easy AVR I think it really needs a poker arrow LED setting just like there's a WASD LED setting. It would be even more awesome if both WASD and poker keys would be in advanced LED setting as well if hardware permits.
-
Has anyone used this on a kinesis yet? Just picked up a 2nd so I can work on one w/o not having one to do actual work on.
-
Ok, it's official. I'm an eedjit. There's WASD ánd Poker keys on the GH60.
I've added LEDs to the poker keys (so R-alt, R-win, R-ctrl, R-shift) but they're in a constant state of being 'on'. Even when I power down my PC they stay on and I have to unplug the kb for them to go off.
I did some experimenting to see if I could change this.
-Making them WASD in easy AVR got me the same result.
-Making each of them a seperate FN key (with toggle) and select arrow keys on the respective layers. Same result except that it lights up the FN key as well when pressing one of the keys. (which is not what I want) Silly thing is only left arrow works.
Could it be a hardware issue? Something I did wrong with soldering in the LEDs and resistors or maybe it's just not hardware supported?
If it's not a hardware thingy and I'm not overlooking a setting in Easy AVR I think it really needs a poker arrow LED setting just like there's a WASD LED setting. It would be even more awesome if both WASD and poker keys would be in advanced LED setting as well if hardware permits.
Sorry for the slow reply!
Just had another look at this and on the GH60revC schematic (http://blog.komar.be/wp-content/uploads/2013/02/gh60_revC_2016-06-02.pdf) there are actually 5 LED pins defined, which matches the resistors on the PCB. I cannot convince my Fn Key to light up no matter what I do but the other four (Escape key, Caps key, Poker arrows and WASD), work and have the correct labels ih the attached config, and FN is attached where it should be so it should work too, in either standard or advanced LED config.
While messing with this I also made an alt layouts file (goes in the 'EasyAVR/configs') but there doesn't seem to be any way to swap the position of switches so there's no way to implement the big FN option which is what I was trying to do :(
-
Ok, it's official. I'm an eedjit. There's WASD ánd Poker keys on the GH60.
I've added LEDs to the poker keys (so R-alt, R-win, R-ctrl, R-shift) but they're in a constant state of being 'on'. Even when I power down my PC they stay on and I have to unplug the kb for them to go off.
I did some experimenting to see if I could change this.
-Making them WASD in easy AVR got me the same result.
-Making each of them a seperate FN key (with toggle) and select arrow keys on the respective layers. Same result except that it lights up the FN key as well when pressing one of the keys. (which is not what I want) Silly thing is only left arrow works.
Could it be a hardware issue? Something I did wrong with soldering in the LEDs and resistors or maybe it's just not hardware supported?
If it's not a hardware thingy and I'm not overlooking a setting in Easy AVR I think it really needs a poker arrow LED setting just like there's a WASD LED setting. It would be even more awesome if both WASD and poker keys would be in advanced LED setting as well if hardware permits.
Sorry for the slow reply!
Just had another look at this and on the GH60revC schematic (http://blog.komar.be/wp-content/uploads/2013/02/gh60_revC_2016-06-02.pdf) there are actually 5 LED pins defined, which matches the resistors on the PCB. I cannot convince my Fn Key to light up no matter what I do but the other four (Escape key, Caps key, Poker arrows and WASD), work and have the correct labels ih the attached config, and FN is attached where it should be so it should work too, in either standard or advanced LED config.
While messing with this I also made an alt layouts file (goes in the 'EasyAVR/configs') but there doesn't seem to be any way to swap the position of switches so there's no way to implement the big FN option which is what I was trying to do :(
Hmm, I tried your config and it works just fine with mine. My FN key lights up when pressing any 'tap key' FN key or stays on when a 'toggle' FN key is pressed until it gets pressed again.
I have the poker arrows LED setting on backlight and it works. When I shut my PC down they still stay on though. :(
Btw, windows command gave me this error when I ran Easy AVR python version: IndexError: list assignment index out of range
I don't know if it's of any relevance (I don't have a clue what it means) but maybe it has some meaning to you.
EDIT: maybe you can associate it with the rapidfire mode in the GUI instead of the tap key mode. I wouldn't know why I would need rapidfire.
This is a great idea, I think I've done it but have no idea how to make it compile all the different versions - it's only outputting a single 'firmware.hex'.
Can anyone who's compiled this tell me what I'm missing? I'm in Atmel Studio 7.
And is there any news on this one yet by any chance? I'm still hoping for it.
-
Guess my FN LED is broken then, I have some funny wiring up top attempting to mirror WASD on the other side as pseudo backlighting attached to the Poker arrows pin so can't say I'm surprised. From what you're describing you've set it as 'Any Fn Active' and it works as it should.
Windows problems? No idea I'm afraid, the debug/error messages are not the best. Everything should work with the standard .exe version as far as I understand it, but I'm in Linux running the python version and it's all good...
The LEDs staying on when the computer is off is a motherboard feature - most turn off but some boards always keep power to some USB ports which is handy for charging stuff, but not for unwanted lights. It's worth trying another port but if you have no luck your only option is one of those auto power off plugs that disconnect the mains when it goes on standby. Why only one of the LED positions? I guess it doesn't boot past the bootloader so all pins are in their default state and only that one is powered up :(
I did manage to compile the firmware with my mod in place and loaded and built a keymap against it, but it didn't have the desired effect - holding the key repeatedly toggled shift which is not helpful.
Turns out Atmel studio doesn't work in windows 7 and the only device I have with anything later is a little tablet which is frustratingly slow, has a tiny screen and only one USB port - it's not an idea development environment! Can't get that version to install on a virtual machine either, and as it's tablet can't just pull the hard drive and clone it. It's not forgotten, just need to accept that there's no better way and get on with it :))
-
I did manage to compile the firmware with my mod in place and loaded and built a keymap against it, but it didn't have the desired effect - holding the key repeatedly toggled shift which is not helpful.
Turns out Atmel studio doesn't work in windows 7 and the only device I have with anything later is a little tablet which is frustratingly slow, has a tiny screen and only one USB port - it's not an idea development environment! Can't get that version to install on a virtual machine either, and as it's tablet can't just pull the hard drive and clone it. It's not forgotten, just need to accept that there's no better way and get on with it :))
I will. :(
Do you by any chance know if it's possible to program such a feature in TMK? I'm working on this little project (mini keyboard) where I could use it very well.
The LEDs staying on when the computer is off is a motherboard feature - most turn off but some boards always keep power to some USB ports which is handy for charging stuff, but not for unwanted lights. It's worth trying another port but if you have no luck your only option is one of those auto power off plugs that disconnect the mains when it goes on standby. Why only one of the LED positions? I guess it doesn't boot past the bootloader so all pins are in their default state and only that one is powered up :(
Aha. I've tried to see if there's a setting in my BIOS but alas. :( :(
-
Is any of the supported devices compatible with a Nerd60 converted to TMK?
-
Is any of the supported devices compatible with a Nerd60 converted to TMK?
I've made the config file (attached) and it compiles and outputs letter keys on an Arduino, but tedk couldn't get it to work on his NerD (https://geekhack.org/index.php?topic=51252.msg2233988#msg2233988) and neither of us really knows enough about this stuff so it's stalled. Feel free to give it a go :)
-
Haven't had the time to read through this thread & it's kinda late so I just wanted to ask - will this be an easy way to flash an Arduino Pro Micro? Have one laying around and thinking how to program it because I've heard it's not the same as with Teensy 2.0. The project would be a macropad or maybe an 40% if it's possible with an Arduino setup.
-
Haven't had the time to read through this thread & it's kinda late so I just wanted to ask - will this be an easy way to flash an Arduino Pro Micro? Have one laying around and thinking how to program it because I've heard it's not the same as with Teensy 2.0. The project would be a macropad or maybe an 40% if it's possible with an Arduino setup.
You can easily build a firmware for flashing to a Pro Micro using EasyAVR, but flashing it is another story. EasyAVR requires FLIP to be installed in order to flash the firmware to the controller, and the Pro Micro doesn't have a friendly bootloader installed for doing that.
I was able to use an ISP prgrammer to load the LUFA DFU bootloader onto the Pro Micro, but that's not the "easy" solution you were hoping for, I fear.
-
@Dwarlorf
Random thought, the bottom row in the 'bl_modes' section of the config has just Poker arrows on - move the all zero line to the bottom instead and see if your LED problem goes away.
TMK is designed to be expandable so you could program your mode (don't ask me how) but as there's already a sacrificable mode it would be about the same difficulty to do it in EasyAVR. I will look at it again tonight, it just can't be that hard!
-
@Dwarlorf
Random thought, the bottom row in the 'bl_modes' section of the config has just Poker arrows on - move the all zero line to the bottom instead and see if your LED problem goes away.
TMK is designed to be expandable so you could program your mode (don't ask me how) but as there's already a sacrificable mode it would be about the same difficulty to do it in EasyAVR. I will look at it again tonight, it just can't be that hard!
Pff, it's a steep learning curve for me. People must think I'm stupid. :-[ Which config file do you mean? There's loads of them :(
Regarding TMK. I just tried to make my own very simple keymap but got an error when compiling. Ive posted my files in the TMK thread to get some help. It will be a while before I'm even near programming anything of relevance. I'm only aping now and barely at step one of the programming ladder. It's gonna take some time before I'm capable of realising my mini keyboard plan so I don't need that functionality anytime soon. I'd appreciate if you could have a look at it but there's no hurry at all.
-
@Dwarlorf
Random thought, the bottom row in the 'bl_modes' section of the config has just Poker arrows on - move the all zero line to the bottom instead and see if your LED problem goes away.
TMK is designed to be expandable so you could program your mode (don't ask me how) but as there's already a sacrificable mode it would be about the same difficulty to do it in EasyAVR. I will look at it again tonight, it just can't be that hard!
Pff, it's a steep learning curve for me. People must think I'm stupid. :-[ Which config file do you mean? There's loads of them :(
Regarding TMK. I just tried to make my own very simple keymap but got an error when compiling. Ive posted my files in the TMK thread to get some help. It will be a while before I'm even near programming anything of relevance. I'm only aping now and barely at step one of the programming ladder. It's gonna take some time before I'm capable of realising my mini keyboard plan so I don't need that functionality anytime soon. I'd appreciate if you could have a look at it but there's no hurry at all.
Open gh60.py in notepad and all will be clear :)
TMK is not fun which is why I'm in this thread, will look later if no-one's helped but need a computer to see three things at once to have any hope of helping!
-
@Dwarlorf
Random thought, the bottom row in the 'bl_modes' section of the config has just Poker arrows on - move the all zero line to the bottom instead and see if your LED problem goes away.
Pff, it's a steep learning curve for me. People must think I'm stupid. :-[ Which config file do you mean? There's loads of them :(
Open gh60.py in notepad and all will be clear :)
That was clear :)
But it screws things up when I'm compiling the hex file. As soon as I build the hex file Easy AVR randomly changes/removes advanced LED settings and only caps lock and poker arrow leds work.
I also got errors in the command box even after I reverted to the old gh60.py file:
More
\*****\Desktop\EasyAVR-master\keymapper>python -m easykeymap.gui
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\*****\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1550, in __call__
return self.func(*args)
File "C:\Users\*****\AppData\Local\Programs\Python\Python35-32\lib\tkinter\simpledialog.py", line 219, in ok
self.apply()
File "C:\Users\*****\Desktop\EasyAVR-master\keymapper\easykeymap\gui.py", line 1568, in apply
self.gui.leds = ledfn
IndexError: list assignment index out of range
I'm going to reinstall Easy AVR and completely redo my lay-out. And I'm not going to bother changing Easy AVR settings ever again. :) It's way above my head. :-[
But thanks for your help once again. :thumb:
-
Haven't had the time to read through this thread & it's kinda late so I just wanted to ask - will this be an easy way to flash an Arduino Pro Micro? Have one laying around and thinking how to program it because I've heard it's not the same as with Teensy 2.0. The project would be a macropad or maybe an 40% if it's possible with an Arduino setup.
You can easily build a firmware for flashing to a Pro Micro using EasyAVR, but flashing it is another story. EasyAVR requires FLIP to be installed in order to flash the firmware to the controller, and the Pro Micro doesn't have a friendly bootloader installed for doing that.
I was able to use an ISP prgrammer to load the LUFA DFU bootloader onto the Pro Micro, but that's not the "easy" solution you were hoping for, I fear.
Maybe you have some links to educate myselfa on loading the bootloader? I'm a programmer so I'm quite fond of command line and hardware stuff but haven't had the time to do research. :(
-
Haven't had the time to read through this thread & it's kinda late so I just wanted to ask - will this be an easy way to flash an Arduino Pro Micro? Have one laying around and thinking how to program it because I've heard it's not the same as with Teensy 2.0. The project would be a macropad or maybe an 40% if it's possible with an Arduino setup.
You can easily build a firmware for flashing to a Pro Micro using EasyAVR, but flashing it is another story. EasyAVR requires FLIP to be installed in order to flash the firmware to the controller, and the Pro Micro doesn't have a friendly bootloader installed for doing that.
I was able to use an ISP prgrammer to load the LUFA DFU bootloader onto the Pro Micro, but that's not the "easy" solution you were hoping for, I fear.
Maybe you have some links to educate myselfa on loading the bootloader? I'm a programmer so I'm quite fond of command line and hardware stuff but haven't had the time to do research. :(
It will be the same process as DanielT describes here (https://geekhack.org/index.php?topic=76134.msg2246042#msg2246042), but the wiring will be slightly different. Sounds like you'll work it out :)
I have not had any luck running EasyAVR on that bootloader though, and nor has tedk. Arduino bootloader (flashed from. the gui) works but the boot key won't work with that so you'll need access to the button to flash.
-
Haven't had the time to read through this thread & it's kinda late so I just wanted to ask - will this be an easy way to flash an Arduino Pro Micro? Have one laying around and thinking how to program it because I've heard it's not the same as with Teensy 2.0. The project would be a macropad or maybe an 40% if it's possible with an Arduino setup.
You can easily build a firmware for flashing to a Pro Micro using EasyAVR, but flashing it is another story. EasyAVR requires FLIP to be installed in order to flash the firmware to the controller, and the Pro Micro doesn't have a friendly bootloader installed for doing that.
I was able to use an ISP prgrammer to load the LUFA DFU bootloader onto the Pro Micro, but that's not the "easy" solution you were hoping for, I fear.
Maybe you have some links to educate myselfa on loading the bootloader? I'm a programmer so I'm quite fond of command line and hardware stuff but haven't had the time to do research. :(
It will be the same process as DanielT describes here (https://geekhack.org/index.php?topic=76134.msg2246042#msg2246042), but the wiring will be slightly different. Sounds like you'll work it out :)
Is the link correct? Opening it through tapatalk sends me to Booper sales thread.
-
Haven't had the time to read through this thread & it's kinda late so I just wanted to ask - will this be an easy way to flash an Arduino Pro Micro? Have one laying around and thinking how to program it because I've heard it's not the same as with Teensy 2.0. The project would be a macropad or maybe an 40% if it's possible with an Arduino setup.
You can easily build a firmware for flashing to a Pro Micro using EasyAVR, but flashing it is another story. EasyAVR requires FLIP to be installed in order to flash the firmware to the controller, and the Pro Micro doesn't have a friendly bootloader installed for doing that.
I was able to use an ISP prgrammer to load the LUFA DFU bootloader onto the Pro Micro, but that's not the "easy" solution you were hoping for, I fear.
Maybe you have some links to educate myselfa on loading the bootloader? I'm a programmer so I'm quite fond of command line and hardware stuff but haven't had the time to do research. :(
It will be the same process as DanielT describes here (https://geekhack.org/index.php?topic=76134.msg2246042#msg2246042), but the wiring will be slightly different. Sounds like you'll work it out :)
Is the link correct? Opening it through tapatalk sends me to Booper sales thread.
Eh... no! try this link instead... (https://geekhack.org/index.php?topic=82676.msg2192323#msg2192323)
-
KC60 updated file attached, cleaned up some stuff, it uses the 60% alt layouts, and it should have the correct columns now. I also incremented the unique ID by 1 in case there were any conflicts brewing if the previous version worked for some people before...
It definitely works great for my KC60 from this last Massdrop drop, I assume from the column order that Leondre said they had (which I had at least similar if identical mismatched order) that anyone with this same rev is in business now. Blatantly cribbed the column order from QMK's KC60.h, but I did replicate the work by hand because I was giving myself fits with multiple files with the aforementioned "unique" ID conflicts :rolleyes:
Hope it works for others, too!
-
KC60 updated file attached, cleaned up some stuff, it uses the 60% alt layouts, and it should have the correct columns now. I also incremented the unique ID by 1 in case there were any conflicts brewing if the previous version worked for some people before...
It definitely works great for my KC60 from this last Massdrop drop, I assume from the column order that Leondre said they had (which I had at least similar if identical mismatched order) that anyone with this same rev is in business now. Blatantly cribbed the column order from QMK's KC60.h, but I did replicate the work by hand because I was giving myself fits with multiple files with the aforementioned "unique" ID conflicts :rolleyes:
Hope it works for others, too!
Excellent, thanks for doing that :thumb:
-
Will Easy AVR work with the Satan GH 60 PCB?
-
Will Easy AVR work with the Satan GH 60 PCB?
I don't know how well it works 'cause I don't own a Satan GH60 but it is listed in the keyboard selection dialog.
-
Will Easy AVR work with the Satan GH 60 PCB?
It must 'work' to be in the list but the included GH60 and KC60 configs are not perfect. Until someone notices problems no-one knows to fix them, so add all the LEDs and flash a basic layout. If it works great - start on your perfect layout. If there's supposed to be an indicator LED on a specific key that's not listed or the keys are shifted by a column (or any other weirdness) post back and I'll investigate :)
-
I suppose I have a wrong concept of what tap key does. I thought that tap key mode would mean I could press a key for a longer period and it would return a different result than with a normal key tap.
So for example pressing the 'q' key for a longer period would result in 'Q' instead of 'q'. (long press on the q key is shift basically)
I do understand your example and how to set it up (although its not what I was looking for) but I still don't understand what I can use tap key mode for.
Oh I see, that sounds rather useful actually. Sadly it's not supported, but all the code you would need is in there because 'hold to do something different' is what tap key mode does - if you tap a modifier key (ctrl, shift FN etc) it will output a character, but only if you don't press another key before releasing the mod and don't hold it too long.
This is useful on really small boards to give keys two functions and full size boards which are shared with someone who expects each key to do it's standard function - they will never press ctrl and insert, so ctrl becomes a 'with mod: ctrl' standard FN and on that layer insert could be a 'toggle' FN to a colemack layer or whatever.
I'll have a look when I get some free time (hopfully tonight) but it will need some testing.
I've been thinking about this and my concept of "hold for opposite" for a while now because I had a hard time trying to figure out how to approach both regarding my 30% design. I think we can scrap the "hold for caps" concept, of course we don't have to, but I think my concept of "Hold for opposite" can replace it fully.
For those interested in these concepts (and my build) have a look here (https://geekhack.org/index.php?topic=84367.0).
First I was thinking we could argue that upper case letters (capitals) could also be considered the opposite of regular letters. But then I figured that if "hold for opposite" works with split layers everybody is free to choose their own opposites anyway, whether it be capitals to letters, uppercases to their numbers or any other combination. This is also more in line with the whole concept of fully programmable keyboards. This way it wouldn't be necessary to use both "Hold for caps"and "Hold for opposite" in one keyboard.
edit: the 'only' thing you have to program is that a long press represents FNx.
What do you think?
Edit2: I just found out qmk firmware has a "hold for caps" feature. http://qmk.fm/#timer-functionality
It also has a tapdance feature (http://qmk.fm/#tap-dance-a-single-key-can-do-3-5-or-100-different-things) which resembles the "hold for opposite" but it uses multiple key taps instead of holding the key.
-
Anybody have a quick answer for how to program Caps Lock indicator LEDs and LEDs in General with this?
I can't seem to figure it out. :(
I have found the View Thing by now, but Setting it up still doesn't make it work after reprogramming for some reason.
I'm using a smallfry Version jd40 with just the caps lack indicator LED.
-
Anybody have a quick answer for how to program Caps Lock indicator LEDs and LEDs in General with this?
I can't seem to figure it out. :(
I have found the View Thing by now, but Setting it up still doesn't make it work after reprogramming for some reason.
I'm using a smallfry Version jd40 with just the caps lack indicator LED.
Don't know about other keyboard code but if you take a look at the GH60 code in Hasu's code package at GitHub it includes a functioning Caps Lock light.
EDIT
Sorry, I didn't see you were using the graphical tool, I thought you were compiling from source. Just forget I said anything... :rolleyes:
-
Anybody have a quick answer for how to program Caps Lock indicator LEDs and LEDs in General with this?
I can't seem to figure it out. :(
I have found the View Thing by now, but Setting it up still doesn't make it work after reprogramming for some reason.
I'm using a smallfry Version jd40 with just the caps lack indicator LED.
That should be all you need to do - just to check the LED is definitely not dead and is connected the right way round, and you've soldered the resistor?
I think my JD40 is a Smallfry in this so I'll add an LED tomorrow and make it work then let you know how to fix it :thumb:
-
Anybody have a quick answer for how to program Caps Lock indicator LEDs and LEDs in General with this?
I can't seem to figure it out. :(
I have found the View Thing by now, but Setting it up still doesn't make it work after reprogramming for some reason.
I'm using a smallfry Version jd40 with just the caps lack indicator LED.
That should be all you need to do - just to check the LED is definitely not dead and is connected the right way round, and you've soldered the resistor?
I think my JD40 is a Smallfry in this so I'll add an LED tomorrow and make it work then let you know how to fix it :thumb:
Well my JD40 is a Smallfry but that was a little harder than expected - everything's wrong!
Firstly the LED holes aren't connected to the circuit, you need to connect them to the pads on either side.
Then in the config it was set to use the wrong pin and to be wired to ground instead of 5v like it is - please find attached smallfryl.py which is corrected, save it in c:\users\username\.EasyAVR\boards then re-open the keymapper and it will show up as 'JD40 (Smallfry LED)' in the list.
For the record the small side of the LED guts (with the long lead) should be connected to the square pad.
-
still the same problem - tried to flash the micro bootloader (Caterina-Micro.hex), but no success. Kernel throws the usual errors. Had a thought, maybe still a fuses problem? Does the Arduino Micro Bootloader even work on the nerd60? Sorry for the long time to answer, my job eats up my time and im too tired to work on the keyboard in the evening.
Hmm... can't say I'm entirely sure on the fuses - I ran the command in the guide so assumed we were in the same place. The NerD is just a circuit built around an atmega32u4 so I don't see why the arduino bootloader wouldn't work, unless it's the extra letters at the end...
I'm going to extract this conversation to it's own thread in the hope of attracting some AVR experts.
Anything happened since then?
This is what made me wondering (bootloader jump address):
http://www.engbedded.com/fusecalc/
Is any of the supported devices compatible with a Nerd60 converted to TMK?
I've made the config file (attached) and it compiles and outputs letter keys on an Arduino, but tedk couldn't get it to work on his NerD (https://geekhack.org/index.php?topic=51252.msg2233988#msg2233988) and neither of us really knows enough about this stuff so it's stalled. Feel free to give it a go :)
Are there additional steps necessary to import the nerd60.py? i've put the file to "EasyAVR-master\keymapper\easykeymap\boards"
-
[mroe]
still the same problem - tried to flash the micro bootloader (Caterina-Micro.hex), but no success. Kernel throws the usual errors. Had a thought, maybe still a fuses problem? Does the Arduino Micro Bootloader even work on the nerd60? Sorry for the long time to answer, my job eats up my time and im too tired to work on the keyboard in the evening.
Hmm... can't say I'm entirely sure on the fuses - I ran the command in the guide so assumed we were in the same place. The NerD is just a circuit built around an atmega32u4 so I don't see why the arduino bootloader wouldn't work, unless it's the extra letters at the end...
I'm going to extract this conversation to it's own thread in the hope of attracting some AVR experts.
Is any of the supported devices compatible with a Nerd60 converted to TMK?
I've made the config file (attached) and it compiles and outputs letter keys on an Arduino, but tedk couldn't get it to work on his NerD (https://geekhack.org/index.php?topic=51252.msg2233988#msg2233988) and neither of us really knows enough about this stuff so it's stalled. Feel free to give it a go :)
[/more]
Are there additional steps necessary to import the nerd60.py? i've put the file to "EasyAVR-master\keymapper\easykeymap\boards"
Anything happened since then?
This is what made me wondering (bootloader jump address):
http://www.engbedded.com/fusecalc/
If it's showing up in the list that bit is right, just don't put two copies in two places or who knows what will happen.
Good idea, you may well be on to something - if the arduino bootloader is a different size to the one in the guide you would need a different fuse setting. Have a play, or I will later with my un-arduino'd arduino :))
-
fyi, i edited my post. f'ed it up in the previous edit ;)
it seems i cant select the nerd60 after i've placed the file in that mentioned directory (that was the reason i asked in the first place). it wont show up at "file -> new default layout".
-
fyi, i edited my post. f'ed it up in the previous edit ;)
it seems i cant select the nerd60 after i've placed the file in that mentioned directory (that was the reason i asked in the first place). it wont show up at "file -> new default layout".
Oh I see... sorry, forgot where we left this as it's been a while.
The config file needs to go in c:\users\[username]\.EasyAVR\boards assuming you're in windows, then you'll need to close and re-open the keymapper and it should appear in the list.
I've just made an adapter so I can easily (un)plug my arduino from the flasher - time to get this working!
Edit: After applying numerous fuse settings which seemed a good idea at the time I have a board which won't enter bootloader mode in Teensy or Atmel bootloader... that's enough for today :(
-
fyi, i edited my post. f'ed it up in the previous edit ;)
it seems i cant select the nerd60 after i've placed the file in that mentioned directory (that was the reason i asked in the first place). it wont show up at "file -> new default layout".
Oh I see... sorry, forgot where we left this as it's been a while.
The config file needs to go in c:\users\[username]\.EasyAVR\boards assuming you're in windows, then you'll need to close and re-open the keymapper and it should appear in the list.
I've just made an adapter so I can easily (un)plug my arduino from the flasher - time to get this working!
Edit: After applying numerous fuse settings which seemed a good idea at the time I have a board which won't enter bootloader mode in Teensy or Atmel bootloader... that's enough for today :(
the adapter was one of my first things to do ^^
FYI, i'm trying to read the fuses from my gh60 and satan, but at least the gh60 ran into timeouts.
i will try to read the fuses on my satan friday afternoon.
have a nice week :)
-
GH60 fuses was next on my list, one of it's design features is the lack of an ISP header so should be fun working out what goes where. Might even require some soldering to get a reliable connection! Let me kno if you work out the satan, I'll be looking in about 11 hours unless someone drags me out tonight.
Still need to add ISO keys after that...
Edit: So much for no header - the pins are in a row next to the spacebar switch! Soldered on some SIP sockets and read it - seemed to take a lot longer than the Arduino...
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9587
avrdude: reading flash memory:
Reading | ################################################## | 100% 194.79s
avrdude: writing output file "/tmp/dump1.hex"
avrdude: safemode: Fuses OK (E:F3, H:99, L:5E)
Sadly I can't write the F3, seems I need a high voltage programmer to reset the fuse :-X
-
I'm finding it really difficult to understand the LED mapping stuff.
Here's a picture of what I'm trying to achieve with the LED mapping http://hrltz.co/13iHQ+
Should there be more options in these dropdowns?
Thanks!
-
GH60 fuses was next on my list, one of it's design features is the lack of an ISP header so should be fun working out what goes where. Might even require some soldering to get a reliable connection! Let me kno if you work out the satan, I'll be looking in about 11 hours unless someone drags me out tonight.
Still need to add ISO keys after that...
Edit: So much for no header - the pins are in a row next to the spacebar switch! Soldered on some SIP sockets and read it - seemed to take a lot longer than the Arduino...
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9587
avrdude: reading flash memory:
Reading | ################################################## | 100% 194.79s
avrdude: writing output file "/tmp/dump1.hex"
avrdude: safemode: Fuses OK (E:F3, H:99, L:5E)
Sadly I can't write the F3, seems I need a high voltage programmer to reset the fuse :-X
What pinout do you use for the GH60?
-
More
GH60 fuses was next on my list, one of it's design features is the lack of an ISP header so should be fun working out what goes where. Might even require some soldering to get a reliable connection! Let me kno if you work out the satan, I'll be looking in about 11 hours unless someone drags me out tonight.
Still need to add ISO keys after that...
Edit: So much for no header - the pins are in a row next to the spacebar switch! Soldered on some SIP sockets and read it - seemed to take a lot longer than the Arduino...
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9587
avrdude: reading flash memory:
Reading | ################################################## | 100% 194.79s
avrdude: writing output file "/tmp/dump1.hex"
avrdude: safemode: Fuses OK (E:F3, H:99, L:5E)
Sadly I can't write the F3, seems I need a high voltage programmer to reset the fuse :-X
What pinout do you use for the GH60?
Looking at the back of the board the six holes under the GH60 logo are below, the values I read are the same as the default on the calculator so looks legit.
GND MISO 5v CLK MOSI Reset
-
I'm finding it really difficult to understand the LED mapping stuff.
Here's a picture of what I'm trying to achieve with the LED mapping http://hrltz.co/13iHQ+
Should there be more options in these dropdowns?
Thanks!
I hate to say this but the Satan PCB does not support lighting each key individually - it has a Caps Lock LED separate but all the other keys are either lit or not at the same time.
What you're looking at in the screenshot is a list of all the possible times the an LED could light up, then you pick which LED you want in that situation (you only have one) and finally how you would like it to light up. In the Satan config the backlight pin is not configured as an indicator so that is missing from the list, but you can easily change that.
There may be options to do as you wish but I need to think them through before making suggestions...
-
Hello. I am Hoàng. i come from VN. I want mod 1 keyboard. I finishing design. But when working with Teensy 2.0 i can not.
i think it using matrix 14x6.
please help me firmware? and more for using keyboard.
(http://i.imgur.com/NIoB5Lg.png)
Thanks very much.
-
Hello. I am Hoàng. i come from VN. I want mod 1 keyboard. I finishing design. But when working with Teensy 2.0 i can not.
i think it using matrix 14x6.
please help me firmware? and more for using keyboard.
Show Image
(http://i.imgur.com/NIoB5Lg.png)
Thanks very much.
Welcome to gh :)
There's something strange with that layout - three keys should not fit where right shift usually goes...
Other than that I would start with a 60% config then add a pin at the end the rows section for the F row - this saves you having to move all the letters down a row. Then copy the number row section near the bottom of the config and paste it above, then change all the 0 rows to 6 to use the pin you added.
You may also need to change the bottom row depending where the keys are connected and add a key in the right shift area.
Can't say any more without a pic of the wiring or a schematic :)
-
Welcome to gh :)
There's something strange with that layout - three keys should not fit where right shift usually goes...
Other than that I would start with a 60% config then add a pin at the end the rows section for the F row - this saves you having to move all the letters down a row. Then copy the number row section near the bottom of the config and paste it above, then change all the 0 rows to 6 to use the pin you added.
You may also need to change the bottom row depending where the keys are connected and add a key in the right shift area.
Can't say any more without a pic of the wiring or a schematic :)
(http://i.imgur.com/mLZmdK6.png)
this is new design :p
i Using pin:
i using 22 pin.
From code of you i will using:
* Column pin configuration
* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
* pin: B6 B5 B4 D7 C7 C6 D3 D2 D1 D0 B7 B3 B2 B1 (pin 14 15 i dont no)
*/
* Row pin configuration
* row: 0 1 2 3 4 5
* pin: F0 F1 F4 F5 F6 F7
*/
are you help me?.
Are you have skype i want make friend w u.
Thanks so much
-
Ah, looks like you've found a better match for the layout but it's in the old style config - replace the top part of the file with this and it will make more sense. You need to replace the ??s with whatever pins they are attached to as it's a custom board so only you know this :)
# Easy AVR USB Keyboard Firmware Keymapper
# Copyright (C) 2013-2016 David Howland
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
"""Keyboard definition for the Epsilon custom keyboard."""
import easykeymap.templates.ATmega32U4_16MHz_TKL as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config
description = "Epsilon"
unique_id = "EPSILON_001"
cfg_name = "epsilon"
teensy = False
hw_boot_key = False
display_height = int(6*4)
display_width = int(16*4)
num_rows = 6
num_cols = 16
strobe_cols = False
strobe_low = False
matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
strobe_cols=strobe_cols,
strobe_low=strobe_low,
rows=[F0, F1, F4, F5, F6, F7],
cols=[B6, B5, B4, D7, C7, C6, D3, D2, D1, D0, B7, B3, B2, B1, F2, F3 , ??, ?? ],
device=firmware.device
)
num_leds = 3
num_ind = 3
num_bl_enab = 2
)
Sorry to say I'm not sociable enough for skype but I'm always happy to help here :thumb:
-
Ah, looks like you've found a better match for the layout but it's in the old style config - replace the top part of the file with this and it will make more sense. You need to replace the ??s with whatever pins they are attached to as it's a custom board so only you know this :)
# Easy AVR USB Keyboard Firmware Keymapper
# Copyright (C) 2013-2016 David Howland
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
"""Keyboard definition for the Epsilon custom keyboard."""
import easykeymap.templates.ATmega32U4_16MHz_TKL as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config
description = "Epsilon"
unique_id = "EPSILON_001"
cfg_name = "epsilon"
teensy = False
hw_boot_key = False
display_height = int(6*4)
display_width = int(16*4)
num_rows = 6
num_cols = 16
strobe_cols = False
strobe_low = False
matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
strobe_cols=strobe_cols,
strobe_low=strobe_low,
rows=[F0, F1, F4, F5, F6, F7],
cols=[B6, B5, B4, D7, C7, C6, D3, D2, D1, D0, B7, B3, B2, B1, F2, F3 , ??, ?? ],
device=firmware.device
)
num_leds = 3
num_ind = 3
num_bl_enab = 2
)
Sorry to say I'm not sociable enough for skype but I'm always happy to help here :thumb:
ok thank very much. This is the first i hand make :p
this is my layout :p
http://www.keyboard-layout-editor.com/#/gists/f40342f9ab907b5782aa05bbc2c1dcf2 (http://www.keyboard-layout-editor.com/#/gists/f40342f9ab907b5782aa05bbc2c1dcf2)
I will buy switch and begin working.
Hope are you help me program and firmware for teensy 2.0.
Thank very much.
-
I flashed in a layout with dual-role space fn into my QuickFire Rapid with Frosty Flake v2. One problem I notice is that if I am typing fast, sometimes the space catches the next character. For example, I have fn(space)+k to up arrow key. Sometimes typing k after space very quickly becomes fn+k instead of space and k. Anyone else experienced a similar problem? Any thoughts on which param I should tune? Thanks!
-
I've done something interesting... On what amounts to a dare, I created LED assignments which included the assignments of backlights twice, and then categorized them as indicator lights.
The idea was when the backlights were off, I could still use them as indicator lights for layers and such.
It worked. I'll have a video of it up soon, but I had a few questions; EDIT: Here's the video:
Is this ok? Yes/No
When the backlights are on, and I activate an indicator of an LED not currently in use by the backlight (IE: Green backlight, and activate red backlight as an indicator of layer) the red does light up, but not with full strength, as it does when the red/green backlight is active. Same for other indicator backlight colors while backlights are active. I kinda like it because it doesn't disturb the backlight, but why is it not getting full power as an indicator light?
In general, the backlights as indicators are dimmer than the backlights. Even with no backlight active. Is this a function of the pulsing? Are indicator lights expected to be single LEDs?
I hope I haven't broken anything ;D
Here's the code in the handwired.py file easy AVR is using for the custom board. Keep in mind I'm using one RGB strip with one pin for each color, plus the default teensy D6.
num_leds = 7
num_ind = 4
num_bl_enab = 8
led_definition = [
('Teensy', 'Recording'),
('red_bl_low', 'Recording'),
('green_bl_low', 'Recording'),
('blue_bl_low', 'Recording'),
]
led_hardware = [
( REF_PORTD, 6, LED_DRIVER_PULLUP ),
( REF_PORTD, 7, LED_DRIVER_PULLDOWN ),
( REF_PORTD, 4, LED_DRIVER_PULLDOWN ),
( REF_PORTB, 4, LED_DRIVER_PULLDOWN ),
( REF_PORTD, 7, LED_DRIVER_PULLDOWN ),
( REF_PORTD, 4, LED_DRIVER_PULLDOWN ),
( REF_PORTB, 4, LED_DRIVER_PULLDOWN ),
]
backlighting = True
bl_modes = [
( 1, 1, 1, 1, 0, 0, 0 ),
( 1, 1, 1, 1, 1, 1, 1 ),
( 1, 1, 1, 1, 1, 1, 0 ),
( 1, 1, 1, 1, 1, 0, 1 ),
( 1, 1, 1, 1, 1, 0, 0 ),
( 1, 1, 1, 1, 0, 1, 1 ),
( 1, 1, 1, 1, 0, 1, 0 ),
( 1, 1, 1, 1, 0, 0, 1 ),
]
-
Hi,
Windows recognizes my GH60 as 'EasyAVR Multimedia Keyboard v2.03.01 device'. I'm wondering if I can change the device name and if so what file to change. I looked around but couldn't find the right file.
-
Hi,
Windows recognizes my GH60 as 'EasyAVR Multimedia Keyboard v2.03.01 device'. I'm wondering if I can change the device name and if so what file to change. I looked around but couldn't find the right file.
That's set in USB.h - to change it you need to compile the firmware.
-
I've done something interesting... On what amounts to a dare, I created LED assignments which included the assignments of backlights twice, and then categorized them as indicator lights.
The idea was when the backlights were off, I could still use them as indicator lights for layers and such.
It worked. I'll have a video of it up soon, but I had a few questions; EDIT: Here's the video:
Is this ok? Yes/No
When the backlights are on, and I activate an indicator of an LED not currently in use by the backlight (IE: Green backlight, and activate red backlight as an indicator of layer) the red does light up, but not with full strength, as it does when the red/green backlight is active. Same for other indicator backlight colors while backlights are active. I kinda like it because it doesn't disturb the backlight, but why is it not getting full power as an indicator light?
In general, the backlights as indicators are dimmer than the backlights. Even with no backlight active. Is this a function of the pulsing? Are indicator lights expected to be single LEDs?
I hope I haven't broken anything ;D
Here's the code in the handwired.py file easy AVR is using for the custom board. Keep in mind I'm using one RGB strip with one pin for each color, plus the default teensy D6.
num_leds = 7
num_ind = 4
num_bl_enab = 8
led_definition = [
('Teensy', 'Recording'),
('red_bl_low', 'Recording'),
('green_bl_low', 'Recording'),
('blue_bl_low', 'Recording'),
]
led_hardware = [
( REF_PORTD, 6, LED_DRIVER_PULLUP ),
( REF_PORTD, 7, LED_DRIVER_PULLDOWN ),
( REF_PORTD, 4, LED_DRIVER_PULLDOWN ),
( REF_PORTB, 4, LED_DRIVER_PULLDOWN ),
( REF_PORTD, 7, LED_DRIVER_PULLDOWN ),
( REF_PORTD, 4, LED_DRIVER_PULLDOWN ),
( REF_PORTB, 4, LED_DRIVER_PULLDOWN ),
]
backlighting = True
bl_modes = [
( 1, 1, 1, 1, 0, 0, 0 ),
( 1, 1, 1, 1, 1, 1, 1 ),
( 1, 1, 1, 1, 1, 1, 0 ),
( 1, 1, 1, 1, 1, 0, 1 ),
( 1, 1, 1, 1, 1, 0, 0 ),
( 1, 1, 1, 1, 0, 1, 1 ),
( 1, 1, 1, 1, 0, 1, 0 ),
( 1, 1, 1, 1, 0, 0, 1 ),
]
No harm done, but looking at your results it seems the first declaration of the LED has been ignored as the 1, 1, 1, 1 at the beginning of each bl_mode should mean you have white backlight the whole time, which clearly you don't!
As you've found you can set an LED used as backlight as an indicator but if it's already on due to the backlight setting it won't do anything.
I think this should give you all possible backlight colours, the Teensy LED will always be lit except in the last mode.
num_leds = 7
num_ind = 4
num_bl_enab = 9
led_definition = [
('Teensy', 'Recording'),
('red_bl_low', 'Recording'),
('green_bl_low', 'Recording'),
('blue_bl_low', 'Recording'),
]
led_hardware = [
( REF_PORTD, 6, LED_DRIVER_PULLUP ),
( REF_PORTD, 7, LED_DRIVER_PULLDOWN ),
( REF_PORTD, 4, LED_DRIVER_PULLDOWN ),
( REF_PORTB, 4, LED_DRIVER_PULLDOWN )
]
backlighting = True
bl_modes = [
( 1, 1, 0, 0 ),
( 1, 0, 1, 0 ),
( 1, 0, 0, 1 ),
( 1, 1, 1, 0 ),
( 1, 1, 0, 1 ),
( 1, 0, 1, 1 ),
( 1, 1, 1, 1 ),
( 1, 0, 0, 0 ),
( 0, 0, 0, 0 ),
]
As to the brightness I'm not sure but different colours have different power requirements and there's only so much power to go around. From memory I think green is the least power hungry so makes sense that it is brightest... Did you do calculations to chose your resistors or are they built in or ??
If you're confident that you're not exceeding the power limit test what colour white looks.
Unrelated but that hinged board is awesome - please post some pics, and if you're in doubt over LED power requirements that would be a better thread to ask in :)
-
Hi,
Windows recognizes my GH60 as 'EasyAVR Multimedia Keyboard v2.03.01 device'. I'm wondering if I can change the device name and if so what file to change. I looked around but couldn't find the right file.
That's set in USB.h - to change it you need to compile the firmware.
Hmm I couldn't find it in the file. Probably too tired from working all night.
-
Unrelated but that hinged board is awesome - please post some pics, and if you're in doubt over LED power requirements that would be a better thread to ask in :)
Here's a thread for the Plico! https://geekhack.org/index.php?topic=84915.0
-
I'm reading more about the damage done by key chording, and I'm curious how difficult it would be to get Easy AVR to support layer latching.
IE: Tap the layer 1 key and tap the key you want to press on layer 1, and then it switches back to layer 0 after that key is pressed.
-
Hi there,
I stumbled across this just recently whilst trawling for help with the Kiibohd controller as i've been having a few problems with getting my modified Planck keyboard to work! (my complete lack of programming being the problem, not Kiibohd's repo)
As far as i can tell this keymapper is looking up to be a god send for me!
:thumb: :thumb: Thanks for an Awesome prog!
There are a couple of little bits that i wondered if i am able to do with this though?
Firstly is it possible to add the UK variation keys like 2", 3£, '@, etc?
Secondly i'm using the GH36 default layout as my Planck layout is 5x12 not 4x12 and has 1x2 Tab & Enter and 2x1 space, I'm assuming that if i split my switch matrix to mirror the rows/columns like the GH36 when i solder and just leave 1 row unassigned in the key mapper it should work like that with no ill effects right?
Feedback:
If you were able to make custom layouts to be created in a similar fashion to 'Keyboard layout editor' I think this would become the No.1 go to firmware generator for people with little to no programming skill like myself!
Also if it saved as a modifiable scrip rather than a .dat, that way its possible for people with a little more than zero skill to tweak the final script before using the keymapper to compile it!
-
Hi there,
I stumbled across this just recently whilst trawling for help with the Kiibohd controller as i've been having a few problems with getting my modified Planck keyboard to work! (my complete lack of programming being the problem, not Kiibohd's repo)
As far as i can tell this keymapper is looking up to be a god send for me!
:thumb: :thumb: Thanks for an Awesome prog!
There are a couple of little bits that i wondered if i am able to do with this though?
Firstly is it possible to add the UK variation keys like 2", 3£, '@, etc?
Secondly i'm using the GH36 default layout as my Planck layout is 5x12 not 4x12 and has 1x2 Tab & Enter and 2x1 space, I'm assuming that if i split my switch matrix to mirror the rows/columns like the GH36 when i solder and just leave 1 row unassigned in the key mapper it should work like that with no ill effects right?
Feedback:
If you were able to make custom layouts to be created in a similar fashion to 'Keyboard layout editor' I think this would become the No.1 go to firmware generator for people with little to no programming skill like myself!
Also if it saved as a modifiable scrip rather than a .dat, that way its possible for people with a little more than zero skill to tweak the final script before using the keymapper to compile it!
Keyboards don't know they're ISO so the US labels work fine as long as you tell your OS the board is ISO, there are two NONUS_?? scancodes for the keys next to enter and left shift.
Not entirely sure what those boards matrix look like but you might want to copy a config file and tweak it :)
-
avrdude: safemode: Fuses OK (E:F3, H:99, L:5E)
Sadly I can't write the F3, seems I need a high voltage programmer to reset the fuse :-X
Those look like the standard fuses on the 32u4, what are you trying to do? Exactly what isn't working?
-
avrdude: safemode: Fuses OK (E:F3, H:99, L:5E)
Sadly I can't write the F3, seems I need a high voltage programmer to reset the fuse :-X
Those look like the standard fuses on the 32u4, what are you trying to do? Exactly what isn't working?
The problem is I have an Arduino Micro which I'm trying to convert to the standard Atmel bootloader to get EasyAVR working on a Nerd60 (I don't have a Nerd so posted the above output from my GH60 to confirm those fuses work with EasyAVR to tedk, who has the Nerd)
It seems at some point I flashed a bad fuse setting and now this happens:
avrdude -c usbasp -p m32u4 -U efuse:w:0xf3:m -P /dev/USBasp
...
avrdude: verification error, first mismatch at byte 0x0000
0xc3 != 0xf3
avrdude: verification error; content mismatch
avrdude: safemode: efuse changed! Was f3, and is now c3
Would you like this fuse to be changed back? [y/n]
Pressing yes results in it hanging, no leaves it as c3.
Any help would be much appreciated :thumb:
-
Keyboards don't know they're ISO so the US labels work fine as long as you tell your OS the board is ISO, there are two NONUS_?? scancodes for the keys next to enter and left shift.
Not entirely sure what those boards matrix look like but you might want to copy a config file and tweak it :)
Ah, yes of course, thanks for reminding me of that!
Ive tried creating a new config.cfg for a custom Planck layout and there's no joy with that as it doesn't show up in the 'load default' list at all!
So i went ahead and just modified the existing Planck.cfg with some moderate success!... however it just doesn't seem to accept an additional 5th row at all, and the 'KEY_SPACER' lines do give a space but they blank over half the key which is set as a 2u!
Can you point out where i'm going wrong and i'll try and fix it myself first?
Should be this:
[attach=1]
closest Keymapper cfg:
[attach=2]
and the config:
[MarkMod]
MAKE_KEY(0,0,4,4)
MAKE_KEY(0,1,4,4)
MAKE_KEY(0,2,4,4)
MAKE_KEY(0,3,4,4)
MAKE_KEY(0,4,4,4)
MAKE_KEY(0,5,4,4)
MAKE_KEY(0,7,4,4)
MAKE_KEY(0,8,4,4)
MAKE_KEY(0,9,4,4)
MAKE_KEY(0,10,4,4)
MAKE_KEY(0,11,4,4)
MAKE_KEY(1,0,4,8)
MAKE_KEY(1,1,4,4)
MAKE_KEY(1,2,4,4)
MAKE_KEY(1,3,4,4)
MAKE_KEY(1,4,4,4)
MAKE_KEY(1,5,4,4)
MAKE_KEY(1,6,4,4)
MAKE_KEY(1,7,4,4)
MAKE_KEY(1,8,4,4)
MAKE_KEY(1,9,4,4)
MAKE_KEY(1,10,4,4)
MAKE_KEY(1,11,4,8)
MAKE_SPACER(2,0,4)
MAKE_KEY(2,1,4,4)
MAKE_KEY(2,2,4,4)
MAKE_KEY(2,3,4,4)
MAKE_KEY(2,4,4,4)
MAKE_KEY(2,5,4,4)
MAKE_KEY(2,6,4,4)
MAKE_KEY(2,7,4,4)
MAKE_KEY(2,8,4,4)
MAKE_KEY(2,9,4,4)
MAKE_KEY(2,10,4,4)
MAKE_SPACER(2,11,4)
MAKE_KEY(3,0,4,4)
MAKE_KEY(3,1,4,4)
MAKE_KEY(3,2,4,4)
MAKE_KEY(3,3,4,4)
MAKE_KEY(3,4,4,4)
MAKE_KEY(3,5,4,4)
MAKE_KEY(3,6,4,4)
MAKE_KEY(3,7,4,4)
MAKE_KEY(3,8,4,4)
MAKE_KEY(3,9,4,4)
MAKE_KEY(3,10,4,4)
MAKE_KEY(3,11,4,4)
MAKE_KEY(4,0,4,4)
MAKE_KEY(4,1,4,4)
MAKE_KEY(4,2,4,4)
MAKE_KEY(4,3,4,4)
MAKE_KEY(4,4,4,4)
MAKE_KEY(4,5,8,4)
MAKE_KEY(4,7,4,4)
MAKE_KEY(4,8,4,4)
MAKE_KEY(4,9,4,4)
MAKE_KEY(4,10,4,4)
MAKE_KEY(4,11,4,4)
-
The problem is you're in the wrong file - you need to change the .py file in the boards directory. The .cfg file is used to make adjustments so you can hide keys (as you've discovered :))) but you can't add new ones.
I'll say no more as you want to learn...
-
avrdude -c usbasp -p m32u4 -U efuse:w:0xf3:m -P /dev/USBasp
...
avrdude: verification error, first mismatch at byte 0x0000
0xc3 != 0xf3
avrdude: verification error; content mismatch
avrdude: safemode: efuse changed! Was f3, and is now c3
Would you like this fuse to be changed back? [y/n]
Pressing yes results in it hanging, no leaves it as c3.
Any help would be much appreciated :thumb:
That's normal. Just pick No. The efuse does not use all the bits and avrdude gets confused when reading it back. http://www.avrfreaks.net/comment/1195856#comment-1195856 (http://www.avrfreaks.net/comment/1195856#comment-1195856)
You will have a problem with the Arduino Micro. The HWB pin is pulled low which affects how the bootloader is triggered. Boards running the Atmel DFU bootloader have HWB pulled high.
-
The problem is you're in the wrong file - you need to change the .py file in the boards directory. The .cfg file is used to make adjustments so you can hide keys (as you've discovered :))) but you can't add new ones.
I'll say no more as you want to learn...
yep, lol. I had kinda clocked on that the .cfg was only to 'adjust' what is visible in the gui...
Whilst i was waiting on Python to download i was having a mooch round the directories and found tucked away in 'Libraries.zip/easykeymapper/boards/' Planck.pyc but as far as i can figure .pyc is compiled and according to the google box its not yet possible to de-compile above 2.5 as yet?
However it has just this moment occurred that i'm trying to mess around with a file that has not yet been extracted (which generally screws things up anyway *slaps head*)
So i'll get those files extracted now and try some more fiddling about!
Ps. I kinda gave up on the Teensy 3.2 route and ordered a couple of 2.0's instead, so don't worry i'm fully aware this is for AVR and not ARM chips!
So i have 1 unused 3.2 and one that's just been de-soldered if anyone is interested!
Edit:
Un-edit
-
Ah, windows binary version!
You'll need to get the .py from here (https://github.com/dhowland/EasyAVR/tree/master/keymapper/easykeymap/boards), rename it, and save it in c:\users\[your username]\EasyAVR\boards then open it in notepad and change the name at the top.
-
Ahhh, Thanks :thumb:
Sorry, forgot to mention ive gone back ti Win with this... i was having problems getting keymapper to compile in Ubuntu!
I'm fairly noob with Terminal and nearly a non starter in C
Edit:
Mostly sorted!
[attach=1]
When i remove the labeled line from the .py it seems to move everything 1 step to the left on the 2nd row... is that now what i should use the the .cfg to rectify?
((4, 8), (1, 11), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE')],
[((4, 4), (2, 0), 'HID_KEYBOARD_SC_Z'), ### --THIS LINE-- ###
((4, 4), (2, 1), 'HID_KEYBOARD_SC_Z'),
((4, 4), (2, 2), 'HID_KEYBOARD_SC_X'),
((4, 4), (2, 3), 'HID_KEYBOARD_SC_C'),
((4, 4), (2, 4), 'HID_KEYBOARD_SC_V'),
((4, 4), (2, 5), 'HID_KEYBOARD_SC_B'),
((4, 4), (2, 6), 'HID_KEYBOARD_SC_N'),
((4, 4), (2, 7), 'HID_KEYBOARD_SC_M'),
((4, 4), (2, 8), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
((4, 4), (2, 9), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
((4, 4), (2, 10), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK')],
Also, I altered a few bits at the beginning of the .py (which seemed to make sense to me) was i correct to do this?
description = "MarkPlanck" ##Changed-default layout name in the keymapper##
unique_id = "PLANCK_002" ##Changed from PLANCK_001##
cfg_name = "planck2" ##Changed from planck - which now points to planck2.cfg to modify the key layout ##
teensy = False
hw_boot_key = False
display_height = int(4*4)
display_width = int(12*5) ##Changed from 12*4 to 12*5##
num_rows = 5 ##Changed from 4 ##
num_cols = 12
although i'm not sure if i need to alter the
'Matrix_hardware'
'Matrix_strobe' and
'Matrix_sense'
lines to accommodate the new row or does that just work its own magic now?
-
You need a (4, none, '0') instead of the extra Z to make a space behind the tall key.
display_width should stay 12*4 - this means 12 switches at 4 quarter widths wide. You have added a row so display_height is the one to change.
You will need to add an extra pin for the extra row but if you can work that out you're doing well - there's a friendlier way of doing it in newer files such as the GH60 which you can swap in.
-
This
That's normal. Just pick No. The efuse does not use all the bits and avrdude gets confused when reading it back.
But not this
Boards running the Atmel DFU bootloader have HWB pulled high.
At least not on any of my controllers. HWB pulled low says jump to bootloader on reset.
Do you still have a bootloader programmed onto the controller? Do you have a hex file for some DFU bootloader (or other)?
-
This
That's normal. Just pick No. The efuse does not use all the bits and avrdude gets confused when reading it back.
But not this
Boards running the Atmel DFU bootloader have HWB pulled high.
At least not on any of my controllers. HWB pulled low says jump to bootloader on reset.
Do you still have a bootloader programmed onto the controller? Do you have a hex file for some DFU bootloader (or other)?
Oops, missed this earlier! Strange how it can read one board correctly but not the other but if you both say so I'll believe it.
Just plugged the 'Arduino' in and it showed up as an Arduino, it's been flashed to the dodgy Teensy replacement, the Atmel one and back to Arduino several times so I had no idea where I'd left it :))
Flashing to DFU as I type...
Edit: Flashed GH60 hex and it works! Now to try Nerd
Edit 2: Flashed Nerd firmware and it outputs keys when poked with a diode - now wondering why I didn't test it before? Thanks bpiphany, I will PM tedk and see if he's able to test it. Even the reset button works. Well, it would if it wasn't covered in superglue!
-
You're welcome! Wasn't much work on my part =D
-
You're welcome! Wasn't much work on my part =D
You made me look at it, I'd not have made any progress otherwise!
-
You need a (4, none, '0') instead of the extra Z to make a space behind the tall key.
display_width should stay 12*4 - this means 12 switches at 4 quarter widths wide. You have added a row so display_height is the one to change.
I Put the (4, None, '0') in place of that extra line, but it still displays a 'blank' patch over the lower half of the double height key, but i think that it's only affecting the visual layout now?
I just returned the tab to a 1x1 in the .py (i know how its meant to be! getting the keyboard to work right is the important bit)
I did cotton onto the display_height/display_width after a little while and had already fixed that bit by the time i read the post (thanks for clarifying that i was right though :D)
I think i need to change: 'teensey = false' to 'teensy = true' :-\
But not sure as it lists 'ATmega32U4_16MHz_SIXTY as firmware' already at the top! (thats a little confusing )
You will need to add an extra pin for the extra row but if you can work that out you're doing well - there's a friendlier way of doing it in newer files such as the GH60 which you can swap in.
Err, yea lol!
Cant make heads or tails of the hex part, ive ran it through a hex converter to see if i could figure it out that way but still looks like random numbers to me, can't see a pattern! (well not one i could guestimate at any rate)
As far as i can figure it looks to strobe on 5 rows and sense on 12 columns (which seems right without modifying aqnything, although i thought it should strobe on the columns and sense on the rows, but that could just be because diodes are the opposite way round on a real planck?)
When you say i can just swap in from the 'GH60.py (Supports backlight)' is that everything from Line 19-75 then edit line 42/43 to my proposed pins? (as well as the lines i have already changed in this copied .py)
rows=[C7, C6, D3, D2, D1],
cols=[F0, F1, F4, F5, F6, F7, B6, B5, B4, D7, D4, D5]
I believe those pins are all good to use and leaves me 6 usable pins (D0, B7, B3, B2, B1, B0) possibly allowing me to add RGB back lighting in the future since there looks to be backlighting support with that section of the gh60? (was thinking x4 or x6 WS2812B addressable LEDs, nothing fancy just on/off and manual colour change)
And I would also like to say thank you SO much for your help so far, it is greatly appreciated :thumb: :thumb:
I have got further in the last couple of days with this and your advice than i have in the last few weeks with the 3.2!
-
I think i need to change: 'teensy = false' to 'teensy = true' :-\
Well, are you using a Teensy? :))
I Put the (4, None, '0') in place of that extra line, but it still displays a 'blank' patch over the lower half of the double height key, but i think that it's only affecting the visual layout now?
Yes, purely visual. If you look in the top right of the keymapper gui it has sections for layout row/column as well as matrix row/colum - on a Plank they are the same but take a look at the Kitten Paw...
But not sure as it lists 'ATmega32U4_16MHz_SIXTY as firmware' already at the top! (thats a little confusing )
These are binary firmware blobs the gui builds against which define the maximum number of rows and columns - SIXTY is good for your build as you want pins left for LEDs, but if you wanted to build a bigger board you'd need to change it.
To switch to the new config add this on line 21 then replace lines 39-70 with 39-45 and change you pins, the rest hasn't changed.
from easykeymap.helper import make_matrix_config
MOZ is supposedly working on adding WS2812B support but haven't heard anything about it lately, so you're stuck with standard LEDs for now - you can do RGB using one pin per colour if you don't use too many (LED circuits are not my speciality)
And I would also like to say thank you SO much for your help so far, it is greatly appreciated :thumb: :thumb:
I have got further in the last couple of days with this and your advice than i have in the last few weeks with the 3.2!
No problem, sometimes the old faithful is better than the shiny new model :thumb:
-
I think i need to change: 'teensy = false' to 'teensy = true' :-\
Well, are you using a Teensy? :))
I knew I'd have to ask 1 stupid question, it's obligatory Lmao
I wasn't planning on getting fancy with the LEDs anyway, but thats a much simpler solution, standard rgb LEDs connected in parallel and use a pin per colour!
Thanks again dude!
Now just waiting on the post for the Teensy to arrive!
-
This
That's normal. Just pick No. The efuse does not use all the bits and avrdude gets confused when reading it back.
But not this
Boards running the Atmel DFU bootloader have HWB pulled high.
At least not on any of my controllers. HWB pulled low says jump to bootloader on reset.
Do you still have a bootloader programmed onto the controller? Do you have a hex file for some DFU bootloader (or other)?
Oops, missed this earlier! Strange how it can read one board correctly but not the other but if you both say so I'll believe it.
Just plugged the 'Arduino' in and it showed up as an Arduino, it's been flashed to the dodgy Teensy replacement, the Atmel one and back to Arduino several times so I had no idea where I'd left it :))
Flashing to DFU as I type...
Edit: Flashed GH60 hex and it works! Now to try Nerd
Edit 2: Flashed Nerd firmware and it outputs keys when poked with a diode - now wondering why I didn't test it before? Thanks bpiphany, I will PM tedk and see if he's able to test it. Even the reset button works. Well, it would if it wasn't covered in superglue!
heyhey, bad news :( i flashed it on the nerd60 and it's still the same usb error. im going to check the fuses tomorrow after work. what are your fuses settings?
btw: portugal was a dream :D
-
ok, i played with the fuses and still no progress :(
http://www.engbedded.com/fusecalc
2k Bootloader address is necessary for the atmel bootloader to work.
settings that work with the tmk firmware:
avrdude -c usbasp -p m32u4 -U lfuse:w:0xdf:m -U hfuse:w:0xd8:m -U efuse:w:0xc3:m -P /dev/USBasp
avrdude -c usbasp -p m32u4 -U lfuse:w:0xdf:m -U hfuse:w:0xd9:m -U efuse:w:0xc3:m -P /dev/USBasp
Settings i tried, but no success:
avrdude -c usbasp -p m32u4 -P /dev/USBasp -U lfuse:w:0x5e:m -U hfuse:w:0x98:m -U efuse:w:0xf3:m (from your gh60 readings)
Both are the same, except that the first one enters DFU mode at boot.
FYI: It seems i cant read the settings from my gh60, USBASP runs in a timeout ALL the time. maybe a crack in my GH60 PCB? :/
-
Well I don't know what to say - everything says it should work! Your USBASP must work if it can flash fuses and bootloaders, your Nerd must work as it's fine with TMK and your GH60 can't be too damaged, assuming it works. Yet you have two problems :confused:
I'd quite like to get my hands on a Nerd just to test but no way am I playing the gon lottery!
-
Well I don't know what to say - everything says it should work! Your USBASP must work if it can flash fuses and bootloaders, your Nerd must work as it's fine with TMK and your GH60 can't be too damaged, assuming it works. Yet you have two problems :confused:
I'd quite like to get my hands on a Nerd just to test but no way am I playing the gon lottery!
wanna test my board? ;) we can split the shippingcosts.
-
Hello. I have a problem on the Planck double taps. It is written that 1kHz polling rate. How can I reduce this value to avoid contact bounce?
-
Hello. I have a problem on the Planck double taps. It is written that 1kHz polling rate. How can I reduce this value to avoid contact bounce?
Polling rate is not what you need to adjust. You need to increase debounce time. This can be done within the config console.
-
Thanks, all worked well!
-
Just a little update....
Everything is all good:
Software ready to flash, switches hard wired and metered out, case finished as much as possible (final fit needed)
I'm still waiting on the little Chinese kid to finish making my teensy 2.0 and paddle around the world in a coracle to hand deliver it!
Thats now 5 weeks 1 day and counting from Amazon :mad:
-
Is anyone using F13-24 in any of their layouts?
I'm using v2.03.01 right now, and it seems trying to run a layout with F13-24 results in those keys sending no scancodes for the keys mapped to F13-24
Running a evtest in linux results in no scancodes being shown when pressing F13-24
Running wireshark to scan the usb bus shows nothing at all being sent from the board when pressing F13-24..
Everything else works as expected...
Anyone else have this working?
-
I am having problems using the [alt] modifier in addition to a keyscan on my Planck keyboard.
I created a keymap starting with the default Planck keymap.
But any key where I select the [alt] modifier in addition to the keyscan, my Planck sends [ctrl]+[alt]+[keyscan] even though I did not select the [ctrl] modifier.
For example, I assign [HID_KEYBOARD_SC_P] to a key and select the [alt] modifier (so I want [alt]+[P] on key press). When I write the firmware to my Planck, the codes sent to my PC are [ctrl]+[alt]+[P].
The other modifiers work fine.
What am I missing?
-
Is anyone using F13-24 in any of their layouts?
I'm using v2.03.01 right now, and it seems trying to run a layout with F13-24 results in those keys sending no scancodes for the keys mapped to F13-24
Running a evtest in linux results in no scancodes being shown when pressing F13-24
Running wireshark to scan the usb bus shows nothing at all being sent from the board when pressing F13-24..
Everything else works as expected...
Anyone else have this working?
Just tried it, doesn't work here either. Samwisekoi was building a battlestation so I would have thought it would be on there, but he's not been online since July so not worth asking him :(
-
I am having problems using the [alt] modifier in addition to a keyscan on my Planck keyboard.
I created a keymap starting with the default Planck keymap.
But any key where I select the [alt] modifier in addition to the keyscan, my Planck sends [ctrl]+[alt]+[keyscan] even though I did not select the [ctrl] modifier.
For example, I assign [HID_KEYBOARD_SC_P] to a key and select the [alt] modifier (so I want [alt]+[P] on key press). When I write the firmware to my Planck, the codes sent to my PC are [ctrl]+[alt]+[P].
The other modifiers work fine.
What am I missing?
Sounds like you're doing everything right but I can't reproduce this with the P key on the default layer or using FN - can you attach the 'Save layout as...' so I can have a look?
-
Just tried it, doesn't work here either. Samwisekoi was building a battlestation so I would have thought it would be on there, but he's not been online since July so not worth asking him :(
thanks for giving it a look... at least it isnt just me doing something wrong
(or maybe we both are ;-) )
-
I am having problems using the [alt] modifier in addition to a keyscan on my Planck keyboard.
I created a keymap starting with the default Planck keymap.
But any key where I select the [alt] modifier in addition to the keyscan, my Planck sends [ctrl]+[alt]+[keyscan] even though I did not select the [ctrl] modifier.
For example, I assign [HID_KEYBOARD_SC_P] to a key and select the [alt] modifier (so I want [alt]+[P] on key press). When I write the firmware to my Planck, the codes sent to my PC are [ctrl]+[alt]+[P].
The other modifiers work fine.
What am I missing?
Sounds like you're doing everything right but I can't reproduce this with the P key on the default layer or using FN - can you attach the 'Save layout as...' so I can have a look?
Attached is the layout file (I am using the Planck as a shortcut keyboard for music production software Cubase). Thanks for helping out.
-
I am having problems using the [alt] modifier in addition to a keyscan on my Planck keyboard.
I created a keymap starting with the default Planck keymap.
But any key where I select the [alt] modifier in addition to the keyscan, my Planck sends [ctrl]+[alt]+[keyscan] even though I did not select the [ctrl] modifier.
For example, I assign [HID_KEYBOARD_SC_P] to a key and select the [alt] modifier (so I want [alt]+[P] on key press). When I write the firmware to my Planck, the codes sent to my PC are [ctrl]+[alt]+[P].
The other modifiers work fine.
What am I missing?
Sounds like you're doing everything right but I can't reproduce this with the P key on the default layer or using FN - can you attach the 'Save layout as...' so I can have a look?
Attached is the layout file (I am using the Planck as a shortcut keyboard for music production software Cubase). Thanks for helping out.
Built this layout and flashed it to my not-Arduino micro - it works fine.
If the attached hex works it's something to do with your EasyAVR version, if it doesn't it could be a hardware problem?
-
Built this layout and flashed it to my not-Arduino micro - it works fine.
If the attached hex works it's something to do with your EasyAVR version, if it doesn't it could be a hardware problem?
Thanks suicidal_orange. I tried your hex and it had the same problem.
But I think I have figured out the issue: the Alt modifier checkbox in EasyAVR actually sends a "R ALT" scancode which on Windows gets translated to CTRL+ALT (see here: https://en.wikipedia.org/wiki/AltGr_key#Control_.2B_Alt_as_a_substitute).
But on software that distinguishes between RALT and LALT I would need to be able to assign the LALT modifier key, which in EasyAVR I can't as there is only that one ALT checkbox (when assigning the LALT directly to a key it sends the correct scan code, but then I can't assign a shortcut combination with letters and modifiers).
So I guess in EasyAVR we would need an option to specify left / right modifier variants in the modifier checkbox section.
-
Built this layout and flashed it to my not-Arduino micro - it works fine.
If the attached hex works it's something to do with your EasyAVR version, if it doesn't it could be a hardware problem?
Thanks suicidal_orange. I tried your hex and it had the same problem.
But I think I have figured out the issue: the Alt modifier checkbox in EasyAVR actually sends a "R ALT" scancode which on Windows gets translated to CTRL+ALT (see here: https://en.wikipedia.org/wiki/AltGr_key#Control_.2B_Alt_as_a_substitute).
But on software that distinguishes between RALT and LALT I would need to be able to assign the LALT modifier key, which in EasyAVR I can't as there is only that one ALT checkbox (when assigning the LALT directly to a key it sends the correct scan code, but then I can't assign a shortcut combination with letters and modifiers).
So I guess in EasyAVR we would need an option to specify left / right modifier variants in the modifier checkbox section.
Good spot!
That should be an easy change to make and it makes sense to use the other one. I'll post a build later.
This is not as easy as I was expecting...
-
Good spot!
That should be an easy change to make and it makes sense to use the other one. I'll post a build later.
This is not as easy as I was expecting...
Thanks suicidal_orange for giving it a shot.
-
I'm using the Python Easy AVR version 2.03.01 & I'm programming a JD40 mk II PCB from 1Up keyboards. The spacebar is unresponsive on all layers. All other keys program as expected.
I'm using the "JD40 (Carpe keyboards)" layout. Should I be using the "JD40 (Smallfry)" instead?
[EDIT]
Never mind. I edited the JD40.py file to put the switch in the correct column.
-
Please add preonic keyboard support
-
Hey there
So sorry to bother, first time poster in a long while.
I'm just after some help with the basic key mapping for a GH60 Satan i just built with via easyAVR and Flip
Im blessed that the keyboard works fine in the standard poker layer which I have selected. However i have encountered 2 issues I have not been able to solve after scouring the
1. A few of the modifier keys on the bottom row's LED does not light up? not really sure why the rest of the keyboard lights up fine, only these few?
2. I soldered a RGB underglow exactly like the one in this thread but it does not light up, unable to find anywhere how to program with easyAVR and would very much like to avoid QMK/TMK any of that crazy stuff (i'm a damned noob when it comes to those kind of things)
all the control points, wires and placement are identical.
Thank you so much for your help
-
I'm a little stumped. I can build any of the preconfigured layouts and flash them to my teensy. However I'm doing a custom hand wire, so I copied the handwire.py and made my modifications. I'm getting the following error:
Can't Build binary
Error: Traceback (most recent call last):
File "D:\Code\EasyAVR\keymapper\easykeymap\gui.py", line 1047, in build
File "D:\Code\EasyAVR\keymapper\easykeymap\gui.py", line 1082, in overlay
File "D:\Code\EasyAVR\keymapper\easykeymap\gui.py", line 981, in translate
IndexError: list index out of range
Checking out gui.py, I'm assuming I screwed something up in the way I define the matrix or layout... But I can't figure it out. Attached is my handwire.py. I would greatly appreciate any feedback.
**EDIT**. I figured this out. the handwire.py from the github repo incorrectly has the first row matrix parameters starting with 1 instead of 0. ie. (4, 4), (1, 0), 'HID_KEYBOARD_SC_ESCAPE') instead of (4, 4), (0, 0), 'HID_KEYBOARD_SC_ESCAPE')
**EDIT#2** Nope. All my fault. Forgot that the handwire.py starts off as a TKL template.... since I'm building a 60% naturally I promptly deleted the first row and neglected to edit the subsequent row designations. .... Thanks for the template and much thanks for EasyAVR.
-
Hey there
So sorry to bother, first time poster in a long while.
I'm just after some help with the basic key mapping for a GH60 Satan i just built with via easyAVR and Flip
Im blessed that the keyboard works fine in the standard poker layer which I have selected. However i have encountered 2 issues I have not been able to solve after scouring the
1. A few of the modifier keys on the bottom row's LED does not light up? not really sure why the rest of the keyboard lights up fine, only these few?
2. I soldered a RGB underglow exactly like the one in this thread but it does not light up, unable to find anywhere how to program with easyAVR and would very much like to avoid QMK/TMK any of that crazy stuff (i'm a damned noob when it comes to those kind of things)
all the control points, wires and placement are identical.
Thank you so much for your help
1 - Would those be the ones bottom right? They are in a separate group called 'poker arrows' so to get them to light up as well you need to keep going through the backlight modes. There should be one that does all...
2 - Exactly like what? In standard EasyAVR RGB is only supported if you connect the colours to indicator pins, and then you can turn off R G and B separately but you can't have a different brightness for each so colours are limited. Someone (MOZ?) was working on adding it but I haven't heard of any progress. For full RGB you need QMK, scary as it is :(
-
Complete noob here. Thanks for EasyAVR !!
I'm trying to create some macros to use in Emacs (spacemacs) but it doesn't work as expected.
I'm currently using windows 10 with the Canadian Multilingual Standard keyboard (French Canadian), I suspect it has something to do with my problem. My keyboard is CMStorm with Frosty Flake.
The problem:
I want to insert \gls{mev} which is a LaTeX command.
In its latest incarnation, the macro is \\,gls\ALT(123)mev(125)
I get àglsev
Before that I tried \\,\ALT(123)mev(125) and got à{mev}
TIA
SH.
P.S. anyone tried to create a Bépo layer using EasyAVR?
-
Not sure on the macros but bepo should be easy enough but as all the legends are wrong in the mapper it would be easier to select the keys on screen and press keys on a working board to assign the correct codes.
If the shifted versions of the keys don't match AZERTY you would need to use an FN key instead of shift and tick 'with mods: shift' on the keys that need it. Give it a go :)
-
Hi - First, thanks very much for Easy AVR Keymapper - I'm using it with my JD45 and it's really great!
I want to program one key with:
ESC on the default layer [works correctly];
Minus_and_Underscore on Fn layer[incorrectly outputs Underscore_and_Underscore],
and Equal_and_Plus on Fn2 layer [works correctly].
Problem is that Shift-ESC is highjacking the Minus sign on Fn layer and outputting Underscore instead of Minus.
I've tried various ways around this: Macro, \Alt(027), \\, but the results are always the same - underscore instead of minus.
It seems Shift-ESC is incorrectly handled in the default layer and Fn layer. (V2.03.01)
Can anybody help or advise? Thanks!
-
I just woke up and I'm not quite following this - “Esc on the default layer [works correctly]” but “it seems shift-Esc is handled incorrectly on default and Fn”? It's pretty basic so hard to believe it doesn't work, there's probably a shift hidden somewhere in your stack...
I'm trying to think what you might be trying to do, perhaps default is letters with an Esc, Fn is capitals with a minus and shift makes the minus an underscore? To do that you'd have to make your 'shift' key an FN then tick 'with mods: shift' on all the letters etc except the minus/underscore, which could then be shifted normally.
That's probably not it but whatever you want to do is surely possible, just need to get my head round what it is :thumb:
Might be helpful if you could attach your layout, I should have my computer fixed today to be able look at it.
-
Much thanks for your reply, here's the layout:
[attachimg=2]
Default Layer:
Esc works normally
Shift+Esc gives "<" in a text editor - but in a browser it does a "refresh" (like pressing F5)
Fn Layer:
Fn+Esc gives "_" (wrong, should be minus "-")
Shift+Fn+Esc gives "_" (correct)
Fn2 Layer:
Fn2+Esc gives "=" (correct)
Shift+Fn2+Esc gives "+" (correct)
To summarise: Shift+Esc is not working correctly in the default and Fn layers.
I think that if you specify any key as Escape, it interferes with (or highjacks) the Shift function of that key.
I hope this makes it clearer - Thanks!
-
Ok - here's a link to the layout file:
https://www.dropbox.com/s/46jnh8qi89ujrxt/JD45EscapeProblem.dat?dl=0
Thanks!
-
My motherboard was dead on arrival so can't look, but this does sound very strange. I've reused Esc as a 1! on my JD40 and had no problem but maybe that was on the old version...
Will look tomorrow if no-one else has, assuming my luck improves.
-
Much thanks - I really appreciate it!
-
I found a bug...
If a Macro key with "word\ENTER," is pressed multiple times, only the first time is it done correctly with ENTER (i.e. a new line). All subsequent presses just print "word" on same line with no more ENTER's.
-
Hey peeps, Happy New Year to all!
Been quite a long time since i was last on here, but i had a right nightmare with getting my teensy 2.0 from amazon (China).
I got a message saying that it had been delivered after 8 weeks! Which was news to me as i was still waiting for it to arrive... so i sent them a message asking what was going off and that i was still waiting on it to arrive. They was the usual unhelpful message back from them ''We check item arrive...''
long story short, dodgy seller who sent amazon a fake proof of delivery (half a dozen spelling mistakes in it was the giveaway) got money back wrote a 'pleasant' review of the seller (not) and started again!
But anyhow, ordered up another teensy from somewhere else and that arrived just before xmas.
I have now finally managed to get it all sorted and am now testing my keyboard right now!!
Been that long i forgot what i was supposed to be doing but, all good now and well chuffed at my handy work :cool: :cool:
I think i have a dodgy solder joint somewhere on my matrix as a couple of keys on the bottom row sometimes don't work, but i'm happy if thats the only hardware problem to fix!
Having a little problem with using 'toggle' mode on my fn keys atm, if i press an fn key it wont 'un toggle' when pressed again! But think that i just need to re specify my fn, fn1 and fn2 keys in the new layers in order for it to function correctly!
Just needing to finish setting up my fn layers, tweak a few bits here and there and get it in its case and tidied up, but at least i'm pretty much home free now!
Just want to give one last shout out to all that had helped me with this and especially to suicidal_orange for your input and advice :thumb: :thumb: :thumb:
YOU DA MAN man :D
[Edit]
Yep, some of the keys not working turned out to be bad solder joints on the teensy, desoldered and resoldered my teensy and now all is good!
(mental note, in future don't use network cable wire its a little too stiff and inflexable)
-
I use Easy AVR on my JD45 keyboard and love how simple it is to use... I'm planning to purchase an Atreus keyboard and wanted to know if anyone has actually used it for this keyboard. I see that it says it"s compatible, but has not been tested to work. It uses an atmega32u4 controller, so it should work fine, but I just wanted to see if anyone has used it on this particular keyboard...
Thanks....
-
I use Easy AVR on my JD45 keyboard and love how simple it is to use... I'm planning to purchase an Atreus keyboard and wanted to know if anyone has actually used it for this keyboard. I see that it says it"s compatible, but has not been tested to work. It uses an atmega32u4 controller, so it should work fine, but I just wanted to see if anyone has used it on this particular keyboard...
Thanks....
Untested probably means the config was converted from tmk - there may be minor issues from typos but as long as you don't mind it not working perfectly straight away (it might, but no guarantee) these can be fixed and then support can be confirmed.
There's no risk of damaging the board so go for it :)
-
Hi, what is the state with L_Alt / R_Alt as selectable modifiers for keys? It would really be useful if we could have both, because in the German layout, all the useful keys like {,[,],},\ are hidden on the R_Alt (Alt Gr) Layer, whereas useful key combos like Alt+F4 only work with L_Alt. It would be really nice if you implemented both as options, because they are actually very different for ISO-Keyboards. Unfortunately, using Ctrl+Alt as a substitute is not an option for Linux.
-
Hi, what is the state with L_Alt / R_Alt as selectable modifiers for keys? It would really be useful if we could have both, because in the German layout, all the useful keys like {,[,],},\ are hidden on the R_Alt (Alt Gr) Layer, whereas useful key combos like Alt+F4 only work with L_Alt. It would be really nice if you implemented both as options, because they are actually very different for ISO-Keyboards. Unfortunately, using Ctrl+Alt as a substitute is not an option for Linux.
There are two keycodes but if you're talking about the tickboxes I'm pretty sure all 8 bits which are used up, so adding another would be hard.
Are you using the macros or could you use alt codes for those characters? Not sure how many there are on a German board...
-
Yes, I was talking about the tickboxes. That's unfortunate... Macros seem like the best solution for single key combos like Alt+F4. Thanks for your answer!
At any rate, I suppose it would be best if the tickbox made clear if L_Alt or R_Alt is being used, because, as I said, they're actually completely different keys on ISO-Layouts.
-
Fn Layer:
Fn+Esc gives "_" (wrong, should be minus "-")
Shift+Fn+Esc gives "_" (correct)
Good news - I had a look in your saved layout and as suspected you have the "with mods: shift" ticked on this key on the FN layer - untick it and you will get your "-" back.
(http://i.imgur.com/CLyNhPi.png)
Default Layer:
Esc works normally
Shift+Esc gives "<" in a text editor - but in a browser it does a "refresh" (like pressing F5)
I don't have a JD45 but I recreated your keymap (with and without the error above) on my GH60 and this doesn't happen for me. The position of the keys in the matrix don't suggest it could be a hardware issue either... Have you looked what keys it thinks are being pressed in Switch Hitter (https://elitekeyboards.com/switchhitter.php) when you press shift and Esc?
-
Thanks very much! That fixed it! :thumb:
Thanks for taking the time to look into it!
-
Yes, I was talking about the tickboxes. That's unfortunate... Macros seem like the best solution for single key combos like Alt+F4. Thanks for your answer!
At any rate, I suppose it would be best if the tickbox made clear if L_Alt or R_Alt is being used, because, as I said, they're actually completely different keys on ISO-Layouts.
It's a good point.
I just checked and all the tickboxes are the R_ variants for whatever reason - sounds like it's the most useful in your case. The only R_Alt key I use in ISO-UK is 4 for a €...
-
Hello
Would this work with the KC60? Thank you for any input.
-
Hello
Would this work with the KC60? Thank you for any input.
The search box in the top right corner is good for searching in a thread - it finds this helpful post (https://geekhack.org/index.php?topic=51252.msg2248928#msg2248928) by beeull. Assuming you have the same revision PCB and you're in Windows save the file to C:\Users\USERNAME\.EasyAVR\Boards (should exist after you run EasyAVR once) and you should be good. If not post your problems - you won't damage the board :)
-
Awesome thanks a lot.
-
Is this project dead? The Change Log in the 2nd post says discontinued and the GitHub repo has a few pull requests that are a bit dated.
-
I believe the 'discontinued' part is in reference to the *Changelog* ..not the project.
But the project does seem a bit dormant, .. with last commit like 9 months ago.
It really is quite good..
I've moved on to TMK, which is actively developed if it is a bit more complicated to use...
-
When creating a new keyboard type, how can you specify key modes such as Toggle or Tap Key?
-
When creating a new keyboard type, how can you specify key modes such as Toggle or Tap Key?
I don't think you can, the default layout is basic. If you want to distribute a more complicated layout you would need to save it from within the mapper.
-
I just created three pull requests to the EasyAVR project.
1. Fixed Atreus support... now tested and works on the two Atreus keyboards that live in my house
2. Added support for the Atreus62 keyboard... tested on my own Atreus62 keyboard
3. Added support for the Minorca keyboard... tested on my own Minorca keyboard
-
Hi,
Macro keys programmed with "anyword\ENTER," when pressed multiple times, only types correctly the first time it is pressed (i.e. with a new line). But subsequent presses just repeat "anyword" on same line with no more ENTER's.
Any ideas?
-
I just created three pull requests to the EasyAVR project.
1. Fixed Atreus support... now tested and works on the two Atreus keyboards that live in my house
2. Added support for the Atreus62 keyboard... tested on my own Atreus62 keyboard
3. Added support for the Minorca keyboard... tested on my own Minorca keyboard
Thanks! No idea if/when they will be accepted but I'll add them to the list of boards that aren't quite right in the default config in case people ask.
-
Hi,
Macro keys programmed with "anyword\ENTER," when pressed multiple times, only types correctly the first time it is pressed (i.e. with a new line). But subsequent presses just repeat "anyword" on same line with no more ENTER's.
Any ideas?
I just tried this, with a standard (hold to use) FN it worked in Linux and a Windows VM so I rebooted to Windows properly and it still works... Not sure what else it could be - OSX maybe?
-
My bad - I just confirmed it works in Notepad and MS Word - but it didn't work in my usual editor (Notepad++) - sorry, false alarm. Thanks again for looking into it.
-
I just created three pull requests to the EasyAVR project.
1. Fixed Atreus support... now tested and works on the two Atreus keyboards that live in my house
2. Added support for the Atreus62 keyboard... tested on my Atreus62 keyboard
3. Added support for the Minorca keyboard... tested on my Minorca keyboard
Thanks! No idea if/when they will be accepted, but I'll add them to the list of boards that aren't quite right in the default config in case people ask.
I'm not sure I understand. What do you mean you'll add them to the list of boards that aren't quite right? I fixed the Atreus layout, I then added support for two new keyboards, the Atreus62 and Minorca. I also added better File > Save/Build Firmware functionality as well and submitted a pull request. (got tired of it asking for a filename each time).
I do not want to be a maintainer of this project, as I know nothing about the internals of keyboard firmware, but my repo address is https://github.com/jcowgar/EasyAVR where anyone with these new keyboards can get the code. I also merged in the JD40 v2 pull request outstanding on the original project.
-
I'm not sure I understand. I fixed the Atreus layout, I then added support for two new keyboards, the Atreus62 and Minorca. I also added better File > Save/Build Firmware functionality as well and submitted a pull request. (got tired of it asking for a filename each time).
I do not want to be a maintainer of this project, as I know nothing about the internals of keyboard firmware, but my repo address is https://github.com/jcowgar/EasyAVR where anyone with these new keyboards can get the code. I also merged in the JD40 v2 pull request outstanding on the original project.
The maintainer has not been seen for months, that's why I said I don't know when/if your pull request will be accepted. The thanks were on behalf of the community - more boards can only be a good thing :)
Most people who come here are not coders they just download the windows zip then ask in the thread when they have issues, or they ask about unsupported boards. I keep an eye on the thread so if someone asks about an Atreus now I know it's been fixed and can point them in the right direction. The 'broken list' is not public or official, it's just for me.
If you want you could update/add the attached configs to your fork? The KC60 beeull posted "Works with latest Massdrop board" and correct the GH60 I did, it now supports all LEDs, and the split right shift and FN are not swapped.
Only problem is if you aren't going to make a Windows package they both need the device IDs tweaking so they don't conflict with the included wrong versions in the Windows zip, so I tend to attach modified versions to make it easier. There really isn't any way round this...
-
So I'm having trouble with a toggle function layer, I press f3 to use it and my keyboard gets stuck on that layer. Only way to fix it is unplug the keyboard.
-
So I'm having trouble with a toggle function layer, I press f3 to use it and my keyboard gets stuck on that layer. Only way to fix it is unplug the keyboard.
If you use a toggle FN you press it once then stay on that layer until you press another toggle FN to switch to a different layer. To get back to the default layer you need to assign a key on layer 3 as FN3 :thumb:
-
Hi folks.
It looks like it has been five months since I logged on to Geekhack. I think it's safe to say I've left the hobby. I still love my keyboards but I just can't find the time anymore.
How are things at the moment?
-
If you use a toggle FN you press it once then stay on that layer until you press another toggle FN to switch to a different layer. To get back to the default layer you need to assign a key on layer 3 as FN3 :thumb:
Thanks a lot, I guess my next step is learning how to put macros on that layer.
-
@watsyurdeal: Not exactly sure what your problem is with macros. The M-Keys are the macro keys. You simply assign them just like any other key and then you write the macro into the corresponding form at the bottom of the keymapper window. You have to adhere to a certain syntax, but there is a help file for writing macros that I found very helpful.
-
Hi folks.
It looks like it has been five months since I logged on to Geekhack. I think it's safe to say I've left the hobby. I still love my keyboards but I just can't find the time anymore.
How are things at the moment?
I actually just came to this thread to thank you for the software so it is very cool you are passing though.
I'm not a programmer but can monkey-see/monkey-code. I've been beating on QMK for a day or so trying to get a new build to work and was chalking my troubles up to hardware. I thought before I resoldered stuff and posted to /r/olkb I'd give Easy AVR a try. After a quick copy/paste/edit of the handwire.py file, I put a couple of layers together to test the things I couldn't get working and BAM (well, avrdude command anyway), its not a hardware problem. Your software really lived up to its name.
Thank you!
-D
-
Hi folks.
It looks like it has been five months since I logged on to Geekhack. I think it's safe to say I've left the hobby. I still love my keyboards but I just can't find the time anymore.
How are things at the moment?
I actually just came to this thread to thank you for the software so it is very cool you are passing though.
I'm not a programmer but can monkey-see/monkey-code. I've been beating on QMK for a day or so trying to get a new build to work and was chalking my troubles up to hardware. I thought before I resoldered stuff and posted to /r/olkb I'd give Easy AVR a try. After a quick copy/paste/edit of the handwire.py file, I put a couple of layers together to test the things I couldn't get working and BAM (well, avrdude command anyway), its not a hardware problem. Your software really lived up to its name.
Thank you!
-D
Glad I could help ;)
-
having trouble getting easy avr to run/install on new install of ubuntu. pulled via svn but the easykeymap.sh script doesn't want to run. not very familiar with linux but looked like best platform for this. python is installed & present, got dfu-programmer to install, so this is the only piece yet i believe...
any help would be greatly appreciated.
-
having trouble getting easy avr to run/install on new install of ubuntu. pulled via svn but the easykeymap.sh script doesn't want to run. not very familiar with linux but looked like best platform for this. python is installed & present, got dfu-programmer to install, so this is the only piece yet i believe...
On my install (MacOS) I had to set the executable permissions for the script. What happens if you manually execute the commands from the script?
-
mac is my daily os as well but running an old verion of 10.6.8.
linux seemed to be the better supported OS for this type of development. plus, i needed to setup a new server anyway.
from easykeymap.sh:
#!/bin/sh
cd "$( dirname "$0" )/keymapper"
python -m easykeymap.gui
when trying to execute in terminal:
user@123:~/EasyAVR.git/trunk/keymapper$ cd "$( dirname "$0" )/keymapper"
bash: cd: ./keymapper: No such file or directory
user@123:~/EasyAVR.git/trunk/keymapper$ python -m easykeymap.gui
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/user/EasyAVR.git/trunk/keymapper/easykeymap/gui.py", line 33, in <module>
from tkinter import *
ImportError: No module named tkinter
not sure what i'm missing...
-
and trying to run this:
sudo python setup.py install
i get this:
user@123:~/EasyAVR.git/trunk/keymapper$ sudo python setup.py install
[sudo] password for user:
Traceback (most recent call last):
File "setup.py", line 19, in <module>
from setuptools import setup, find_packages
ImportError: No module named setuptools
and trying to run this:
python -m easykeymap.gui
i get this:
user@123:~/EasyAVR.git/trunk/keymapper$ python -m easykeymap.gui
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/user/EasyAVR.git/trunk/keymapper/easykeymap/gui.py", line 33, in <module>
from tkinter import *
ImportError: No module named tkinter
-
chmod +x easykeymap.sh
Also, it appears your installation of Python on your Linux server is insufficient to run EasyAVR. You need to install more packages. If you are using a debian-based distro such as Ubuntu, then you need to run something like this:
sudo apt-get install python-tk
But, to be honest, you might want to check out the compiled Windows releases. They are created for novice users.
-
@nevin: you said your daily is MacOS. Give that a try - that worked for me straight forward. When you call the easykeymap.sh, the MacOS suggests to install XCode; I did that and since then it is working fine for me.
-
Hey metalliquaz, if you still read this:
I wanted to thank you for creating this awesome software! I've been using a nonstandard layout for over 10 years. I was afraid I'd have to go back to QWERTZ because there are only a handful of developers left that make sure the drivers work on new systems (win/mac/linux). Thanks to your software and a programmable keyboard I don't need to depend on updated drivers anymore :) Thank you so much! Too bad you are about to move on ;(
-
Hey metalliquaz, if you still read this:
I wanted to thank you for creating this awesome software!
[ snip ]
Thank you so much! Too bad you are about to move on ;(
Completely agree with soVn. Thanks for the effort & the brilliant tool! :thumb:
-
Hey metalliquaz, if you still read this:
I wanted to thank you for creating this awesome software!
[ snip ]
Thank you so much! Too bad you are about to move on ;(
Completely agree with soVn. Thanks for the effort & the brilliant tool! :thumb:
*fistbump*
-
Hi, so I'm a big noob when it comes to programming and keyboards and stuff, but thanks to this software I've been able to customise my Filco keyboard (with a Pegasus Hoof controller). However, I have run into one issue that I'm having trouble getting rid of. Every now and then when I hit the spacebar it registers as two presses, and even though it doesn't happen all the time it's still quite frustrating. Some times it just counts as a double press when I hit the spacebar, so that I get two spaces between words, but other times it also ends up inserting an extra space after the first one or two letters in a word. This is just a problem with the spacebar, every other key seems to work just fine.
So I looked around, checked the help stuff and found that debounce time might be the problem. I tried changing the debounce time to 10ms with the config like the help section said (and I'm pretty sure I did it correctly), but I haven't really noticed a difference and it doesn't appear to have fixed my issue. Maybe I'm being a big dummy and asking a stupid question here, but I'm kind of lost and would appreciate some help!
-
Hi, so I'm a big noob when it comes to programming and keyboards and stuff, but thanks to this software I've been able to customise my Filco keyboard (with a Pegasus Hoof controller). However, I have run into one issue that I'm having trouble getting rid of. Every now and then when I hit the spacebar it registers as two presses, and even though it doesn't happen all the time it's still quite frustrating. Some times it just counts as a double press when I hit the spacebar, so that I get two spaces between words, but other times it also ends up inserting an extra space after the first one or two letters in a word. This is just a problem with the spacebar, every other key seems to work just fine.
So I looked around, checked the help stuff and found that debounce time might be the problem. I tried changing the debounce time to 10ms with the config like the help section said (and I'm pretty sure I did it correctly), but I haven't really noticed a difference and it doesn't appear to have fixed my issue. Maybe I'm being a big dummy and asking a stupid question here, but I'm kind of lost and would appreciate some help!
No, this is a very common problem, and I've been working on it lately. I'm in the hospital right now so I can't write a long post, but try setting the debounce to 16 for now. I have realized that 6 is way too short for EasyAVR's "hair trigger" algorithm.
Sent from my HTC6545LVW using Tapatalk
-
No, this is a very common problem, and I've been working on it lately. I'm in the hospital right now so I can't write a long post, but try setting the debounce to 16 for now. I have realized that 6 is way too short for EasyAVR's "hair trigger" algorithm.
Sent from my HTC6545LVW using Tapatalk
Oh, get well soon then. And I will give that a try, thanks!
-
No, this is a very common problem, and I've been working on it lately. I'm in the hospital right now so I can't write a long post, but try setting the debounce to 16 for now. I have realized that 6 is way too short for EasyAVR's "hair trigger" algorithm.
Sent from my HTC6545LVW using Tapatalk
Oh, get well soon then. And I will give that a try, thanks!
Not sick, new baby birth.
-
Not sick, new baby birth.
Oh, well congratulations instead then! I tried setting the debounce time to 16ms and that seems to have helped.
-
A new version is posted at the DT wiki. It adds some updates to debounce.
Here is a write-up of debounce in EasyAVR (https://medium.com/@dhowland/debounce-algorithms-in-easy-avr-usb-keyboard-firmware-2288a15a96c8#.bfamihxlm)
-
I have a question, how can I insert the scancode of "Alt Gr" (used in German ISO-Layout)?
-
I have a question, how can I insert the scancode of "Alt Gr" (used in German ISO-Layout)?
So, one thing that EasyAVR doesn't have is internationalization. That kind of feature is hard. I'm an American so everything in there is US-centric. Sorry.
The way it works is that the scancodes for non-US keys are exactly the same as they are for the US keys that fill the same spot on the layout. So Alt Gr is normally placed just to the right of the spacebar where our Right Alt key is. Therefore, if you just use Right Alt, and your PC is set to use German, then it will be interpreted as Alt Gr.
-
Alright, thanks for your answer.
Actually I had another problem why it wasn't working, but now it's mapped correctly.
I managed to just map it to right Alt key, and it works like expected.
-
I have a question, how can I insert the scancode of "Alt Gr" (used in German ISO-Layout)?
Hi, fellow German here. Actually you don't need the AltGr key at all. Just like metalliqaz said, it just depends on the key you want to "see". Or just imagine the ALtGr being a different layer.
-
Thanks
And another question: I have my main layer on Layer 0. I created a layer 2, which I can access by pressing one key, and I stay in the new layer after that (because I set it to "toggle").
How can I return from that layer to the original Layer? I can switch to different layers with SCANCODE_FNx, but right now I can't find a way to return to my default layer
Sorry if anyone has described how to do this somewhere already, but I couldn't find it.
-
Thanks
And another question: I have my main layer on Layer 0. I created a layer 2, which I can access by pressing one key, and I stay in the new layer after that (because I set it to "toggle").
How can I return from that layer to the original Layer? I can switch to different layers with SCANCODE_FNx, but right now I can't find a way to return to my default layer
Sorry if anyone has described how to do this somewhere already, but I couldn't find it.
I think what you need to do is, put another SCANCODE_FN2 on that layer 2 and also set it to "toggle". That way you switch back to layer you've been on before.
-
Thanks
And another question: I have my main layer on Layer 0. I created a layer 2, which I can access by pressing one key, and I stay in the new layer after that (because I set it to "toggle").
How can I return from that layer to the original Layer? I can switch to different layers with SCANCODE_FNx, but right now I can't find a way to return to my default layer
Sorry if anyone has described how to do this somewhere already, but I couldn't find it.
I think what you need to do is, put another SCANCODE_FN2 on that layer 2 and also set it to "toggle". That way you switch back to layer you've been on before.
This is the correct answer. It's a "toggle", which means press once to activate, press again to deactivate.
-
This is the correct answer.
STRIKE! #highfive
@metalliqaz: BTW, how's the family doing? Hope, everything went well.
-
ok. been a little while since my last post on the subject... (post#2061)
i ended up running the windows version w/flip. worked like a charm. thank you very much! currently typing on my GH60/pure
my mac was running an older version of python than required, and the ubuntu i had installed on another box wouldn't run it because of the python install not being complete. (ImportError: No module named tkinter) and trying to install the package (sudo apt-get install python-tk) said the package could not be found (probably because of repositories or something...)
it may have been brought up before, but in the layout editor in EASY AVR, the extra key to the right of the shift (in the GH60 pure layout) gets recognized as the the shift key & the shift key is recognized as the extra key to the right. i can upload image for illustration if needed. got it figured out. you just need to flip those two keys in the GH60 pure layout.
thanks again for making this great tool available to us.
and if there is anything i can do to help/give back let me know.
-
ok. been a little while since my last post on the subject... (post#2061)
i ended up running the windows version w/flip. worked like a charm. thank you very much! currently typing on my GH60/pure
my mac was running an older version of python than required, and the ubuntu i had installed on another box wouldn't run it because of the python install not being complete. (ImportError: No module named tkinter) and trying to install the package (sudo apt-get install python-tk) said the package could not be found (probably because of repositories or something...)
it may have been brought up before, but in the layout editor in EASY AVR, the extra key to the right of the shift (in the GH60 pure layout) gets recognized as the the shift key & the shift key is recognized as the extra key to the right. i can upload image for illustration if needed. got it figured out. you just need to flip those two keys in the GH60 pure layout.
thanks again for making this great tool available to us.
and if there is anything i can do to help/give back let me know.
I released a new version a few days ago that included an update to the GH60 from suicidal orange (I think). that might already have your fix.
Sent from my HTC6545LVW using Tapatalk
-
Ok. Thanks. Wasn't a big deal. Will look for the update. Just thought i'd mention it.
Oh, and I hear congratulations are in order. That your 1st, 2nd, 7th? Ha... our kids are the greatest things we could ever create & develop....
Sent from my SM-G900V using Tapatalk
-
Ok. Thanks. Wasn't a big deal. Will look for the update. Just thought i'd mention it.
Oh, and I hear congratulations are in order. That your 1st, 2nd, 7th? Ha... our kids are the greatest things we could ever create & develop....
Sent from my SM-G900V using Tapatalk
First. It's a lot to learn
Sent from my HTC6545LVW using Tapatalk
-
...BIG SMILE. Yes, it's a lot at first. No sleep, etc. but it gets better and is totally worth it. Hang in there, you'll be great!
Everything your parents told you about kids is true & one thing they probably left out was that you'll be tripping on their toys & stuff till they're old enough to move out of the house...
congrats.
-
Hey there, this software looks great! Will it run on PS2AVRGB boards? Specifically looking to get it going on the wkl b.mini.
Thanks!!
-
Hey there, this software looks great! Will it run on PS2AVRGB boards? Specifically looking to get it going on the wkl b.mini.
Thanks!!
Sorry, that board is not supported.
Sent from my HTC6545LVW using Tapatalk
-
I have this pcb coming (Satan RGB60 PCB) and was wondering if I can program it with Easy AVR - https://world.taobao.com/item/544439476756.htm?fromSite=main
This will be my first build so am a bit apprehensive :(
-
Yes, definitely you can. I just got this Satan pcb and tested it with EasyAVR and it works perfectly.
CORRECTION : Sorry, I thought you were talking about the regular Satan board... I don't know about the RGB version... Please ignore this post... Thanks
-
I have this pcb coming (Satan RGB60 PCB) and was wondering if I can program it with Easy AVR - https://world.taobao.com/item/544439476756.htm?fromSite=main
This will be my first build so am a bit apprehensive :(
I'm not exactly sure. There is already support for "GH60 Satan" PCB in EasyAVR. I don't know how similar the RGB model is. If it uses a USB AVR, then we can support it. However the RGB LEDs aren't supported.
Sent from my HTC6545LVW using Tapatalk
-
Yes, definitely you can. I just got this Satan pcb and tested it with EasyAVR and it works perfectly.
Thanks!
Sent from my HTC6545LVW using Tapatalk
-
Sorry I got mixed up with the regular Satan board... I don't know if the RGB version is programmable with EasyAVR... Sorry :-[
-
I'm impressed by this firmware it really is quite good. It has extended the usability of my Filco Mjt2 !
-
I'm impressed by this firmware it really is quite good. It has extended the usability of my Filco Mjt2 !
great, glad you like it!
Sent from my HTC6545LVW using Tapatalk
-
Releases are now made at Github (https://github.com/dhowland/EasyAVR/releases) instead of just posting links to my Dropbox on the DT wiki.
Version v2.05.02 is posted today with the following updates
- Optimization tweaks and code cleanup
- Add support for ACPI power buttons
- Expand media keys support
This builds on the previous release, which incorporated jcowgar's work
-
Found a problem, can not use the "Boot mode" function,Press it Key,not into bootloader mode
Device manager inside the HID Keyboard Drvice disappear and there will not enter the dfu mode?
-
Found a problem, can not use the "Boot mode" function,Press it Key,not into bootloader mode
Device manager inside the HID Keyboard Drvice disappear and there will not enter the dfu mode?
What keyboard are you using?
-
Found a problem, can not use the "Boot mode" function,Press it Key,not into bootloader mode
Device manager inside the HID Keyboard Drvice disappear and there will not enter the dfu mode?
What keyboard are you using?
SELF MADE For 32U4 (LAYOUT is almost the same as GH60)
-
Found a problem, can not use the "Boot mode" function,Press it Key,not into bootloader mode
Device manager inside the HID Keyboard Drvice disappear and there will not enter the dfu mode?
What keyboard are you using?
SELF MADE For 32U4 (LAYOUT is almost the same as GH60)
Make sure Teensy=False if you are not using a Teensy controller.
-
Hello everyone, I just got myself a red scarf III 96. Is there anyway to get this supported on Easy AVR? I would really like to get macros onto my board and I've been steuggling trying to understand TMK - so I'm hoping I could use Easy AVR instead.
-
Hello everyone, I just got myself a red scarf III 96. Is there anyway to get this supported on Easy AVR? I would really like to get macros onto my board and I've been steuggling trying to understand TMK - so I'm hoping I could use Easy AVR instead.
The most important thing is that it uses one of the supported AVR microcontrollers with DFU. If TMK has support that's a good sign.
Edit: yeah, here is the code: https://github.com/kairyu/tmk_keyboard_custom/tree/master/keyboard/RedScarfIII
However it would take some effort to write up the config file for EasyAVR. Also, the RGB support would require hacking the firmware (C code)
-
Thanks for the response
Are there any guides on how to make the config file and is that something the average person with no programming experience can do?
-
Thanks for the response
Are there any guides on how to make the config file and is that something the average person with no programming experience can do?
There is a guide of sorts (https://github.com/dhowland/EasyAVR#supporting-custom-boards)
It can be a lot of work to support a new board, but it's all right there in plain text. You have to know a lot about the board you are supporting.
I can help with this process, but it takes close coordination because I don't own this hardware to test with. It usually requires that you load a series of test builds over the course of a few days.
-
Any luck on the viper v2 board? I'm willing to test out stuff :D I think the hardware should be the same as the old viper (atmega32u4).
-
Any luck on the viper v2 board? I'm willing to test out stuff :D I think the hardware should be the same as the old viper (atmega32u4).
If I ever worked on Viper 2 back in the day, I've since forgotten about it. I you find other code that supports it, such as TMK, I can usually help you get a port going.
-
I've been trying to get Easy AVR working for my minivan but to no avail. Personally I don't care for the online config tool and I love easy avr. has anyone got a .PY they'd be willing to share. I would be interested to see how it differs from mine. Thanks.
edit- Ive figured it out.
-
What's a minivan?
-
What's a minivan?
This (https://thevankeyboards.com/) is a minivan.
-
I'm in the process of learning EasyAVR since I've ordered a gh60 satan and som stuff to build my first diy-keyboard.
Most of the basic stuff is easy to figure out, but I am having some trouble understanding other things. So I thought I'd just drop by here and ask my questions to see if I can get some help.
These are some of the questions that have popped up in my mind when looking at the program for the first time:
Is the "App" button the same as the physical FN key? If I understand things correct the SCANCODE_FN is the first layer rather than the FN key. I am now pretty sure that the first layer is the same thing as holding down the FN key. :)
How do I use SpaceFN? Do I set the key to FN then Tap key HID_KEYBOARD_SC_SPACE ?
How do I bind Macro 1 to let's say L_Shift+L_Ctrl+X or something like that. Binding one key to multiple key presses.
Can i bind a key to an ASCII-code?
What does the checkboxes "With mods" mean?
Thanks in advance.
-
What's a minivan?
This (https://thevankeyboards.com/) is a minivan.
Nice. Well, if you have it working, post the file or send a pull request on github so it can be added to the distribution. :)
Sent from my HTC6545LVW using Tapatalk
-
I'm in the process of learning EasyAVR since I've ordered a gh60 satan and som stuff to build my first diy-keyboard.
Most of the basic stuff is easy to figure out, but I am having some trouble understanding other things. So I thought I'd just drop by here and ask my questions to see if I can get some help.
These are some of the questions that have popped up in my mind when looking at the program for the first time:
Is the "App" button the same as the physical FN key? If I understand things correct the SCANCODE_FN is the first layer rather than the FN key. I am now pretty sure that the first layer is the same thing as holding down the FN key. :)
How do I use SpaceFN? Do I set the key to FN then Tap key HID_KEYBOARD_SC_SPACE ?
Yes, that's it.
How do I bind Macro 1 to let's say L_Shift+L_Ctrl+X or something like that. Binding one key to multiple key presses.
You can't do that. Remember to separate what the keyboard does and what your computer does. Ctrl+Shift+X is interpreted by your computer. Some programs may have that combination bound to some action, others may not, but it's valid combination that your computer will notice. If you want to bind something other than X to your X key, then you should use a Fn key and put it on the corresponding layer.
Can i bind a key to an ASCII-code?
Yes, put the code into a macro and bind the macro key.
What does the checkboxes "With mods" mean?
Thanks in advance.
It means that you can tell the keyboard to virtually hold down a modifier when you press the key.
-
Thank you very much for answering my questions metalliqaz, much appreciated.
This may be far fetched, but is there any way of testing the layout within the software? It would be nice to be able to use it as a "virtual keyboard" to make sure everything works as intended before you program the firmware to your keyboard (or as in my case where I have not yet received the pcb).
-
Thank you very much for answering my questions metalliqaz, much appreciated.
This may be far fetched, but is there any way of testing the layout within the software? It would be nice to be able to use it as a "virtual keyboard" to make sure everything works as intended before you program the firmware to your keyboard (or as in my case where I have not yet received the pcb).
That is outside the scope of the project. While technically possible, it won't be implemented because it would take far too much effort to implement
Sent from my HTC6545LVW using Tapatalk
-
Thank you very much for answering my questions metalliqaz, much appreciated.
This may be far fetched, but is there any way of testing the layout within the software? It would be nice to be able to use it as a "virtual keyboard" to make sure everything works as intended before you program the firmware to your keyboard (or as in my case where I have not yet received the pcb).
That is outside the scope of the project. While technically possible, it won't be implemented because it would take far too much effort to implement
Sent from my HTC6545LVW using Tapatalk
Ok, I understand.
Is it possible to set the default led brightness to 0/disable (instead of just from 1/lowest to 16/highest brightness)? I got my keyboard connected to my monitor and each time i turn the monitor on the leds turns on, but I want to have them turned off all the time. I just installed them to get some more soldering experience.
-
Easyavr, boot can not enter the password, can not press "Del" into bios, what is the solution?
-
May I request support for Satan gh60 and Amj Pad please?
-
Easyavr, boot can not enter the password, can not press "Del" into bios, what is the solution?
If you have N-key rollover enabled, try turning it off. A lot of computers don't like N-key rollover at boot.
-
Easyavr, boot can not enter the password, can not press "Del" into bios, what is the solution?
If you have N-key rollover enabled, try turning it off. A lot of computers don't like N-key rollover at boot.
N-key ,how to turn off? please
-
Thank you very much for answering my questions metalliqaz, much appreciated.
This may be far fetched, but is there any way of testing the layout within the software? It would be nice to be able to use it as a "virtual keyboard" to make sure everything works as intended before you program the firmware to your keyboard (or as in my case where I have not yet received the pcb).
That is outside the scope of the project. While technically possible, it won't be implemented because it would take far too much effort to implement
Sent from my HTC6545LVW using Tapatalk
Ok, I understand.
Is it possible to set the default led brightness to 0/disable (instead of just from 1/lowest to 16/highest brightness)? I got my keyboard connected to my monitor and each time i turn the monitor on the leds turns on, but I want to have them turned off all the time. I just installed them to get some more soldering experience.
You can set the default backlight enable to disable backlights.
-
Easyavr, boot can not enter the password, can not press "Del" into bios, what is the solution?
This is a known bug. I have been meaning to fix this for a long time. To work around it, disable NKRO.
-
May I request support for Satan gh60 and Amj Pad please?
Don't we already support the Satan?
Anyway, I don't have either of those boards, so I would require someone to contribute support for it. It's really pretty easy as long as you know what the hardware is.
-
Easyavr, boot can not enter the password, can not press "Del" into bios, what is the solution?
If you have N-key rollover enabled, try turning it off. A lot of computers don't like N-key rollover at boot.
N-key ,how to turn off? please
Use the config console. There are help files included with EasyAVR that explain how to use it.
-
Thank you very much for answering my questions metalliqaz, much appreciated.
This may be far fetched, but is there any way of testing the layout within the software? It would be nice to be able to use it as a "virtual keyboard" to make sure everything works as intended before you program the firmware to your keyboard (or as in my case where I have not yet received the pcb).
That is outside the scope of the project. While technically possible, it won't be implemented because it would take far too much effort to implement
Sent from my HTC6545LVW using Tapatalk
Ok, I understand.
Is it possible to set the default led brightness to 0/disable (instead of just from 1/lowest to 16/highest brightness)? I got my keyboard connected to my monitor and each time i turn the monitor on the leds turns on, but I want to have them turned off all the time. I just installed them to get some more soldering experience.
You can set the default backlight enable to disable backlights.
That's what I've tried to do. I've checked the config console and I found both "default dimmer level" and "set default backlight enable". But I dont find the option to disable it. I can only enter values between 1 and 16 on both settings.
-
that's right. you need to find the enable value for "all off"
Sent from my HTC6545LVW using Tapatalk
-
Easyavr, boot can not enter the password, can not press "Del" into bios, what is the solution?
If you have N-key rollover enabled, try turning it off. A lot of computers don't like N-key rollover at boot.
N-key ,how to turn off? please
Use the config console. There are help files included with EasyAVR that explain how to use it.
Turn off N-Key is OK,thanks.
There is a problem, vol +, vol-, mute are invalid in windows xp? What is the problem?
-
So I seem to have messed up my SixKeyBoard using this =/ I was just trying to get the LEDs enabled, but now it's unresponsive after attempting to flash it. Every time I try to flash my layout it says "Address out of range". So I'm guessing the hex file it created is too large? How do I fix this?
-
Easyavr, boot can not enter the password, can not press "Del" into bios, what is the solution?
If you have N-key rollover enabled, try turning it off. A lot of computers don't like N-key rollover at boot.
N-key ,how to turn off? please
Use the config console. There are help files included with EasyAVR that explain how to use it.
Turn off N-Key is OK,thanks.
There is a problem, vol +, vol-, mute are invalid in windows xp? What is the problem?
EasyAVR implements a media spec that was introduced in Windows 7. That's probably why it doesn't work. I don't have a Windows XP PC to test it on that platform.
-
So I seem to have messed up my SixKeyBoard using this =/ I was just trying to get the LEDs enabled, but now it's unresponsive after attempting to flash it. Every time I try to flash my layout it says "Address out of range". So I'm guessing the hex file it created is too large? How do I fix this?
hmmm. i will need to look into this. the 6key has never been tested. im glad you are giving it a whirl. have successfully programmed any easyavr firmware to it?
-
So I seem to have messed up my SixKeyBoard using this =/ I was just trying to get the LEDs enabled, but now it's unresponsive after attempting to flash it. Every time I try to flash my layout it says "Address out of range". So I'm guessing the hex file it created is too large? How do I fix this?
hmmm. i will need to look into this. the 6key has never been tested. im glad you are giving it a whirl. have successfully programmed any easyavr firmware to it?
No, it failed on the first try & erased the default firmware in the process. It just shows up as an ATmega16u2 DFU now. Here is a readout of what I get when trying to program it using flip:
Running task "Upload to USB AVR with Flip"
The keyboard should be in bootloader mode prior to programming.
If the bootloader has not been activated then the programmer will
not be able to connect and the process will fail. Activate the
bootloader by using the BOOT key (if it is programmed) or use the
reset switch on your microcontroller. If the process fails, make
sure the keyboard is in bootloader mode and then try again.
C:\Program Files (x86)\Atmel\Flip 3.4.7\bin\batchisp.exe -device atmega16u2 -hardware USB -operation onfail abort loadbuffer D:\Downloads\Compressed\easykeymap_windows_2_05_04\sixkeyboard_led.hex memory FLASH erase F blankcheck program verify start reset 0
Running batchisp 1.2.5 on Sun Apr 23 18:51:46 2017
ATMEGA16U2 - USB - USB/DFU
Device selection....................... PASS
Hardware selection..................... PASS
Opening port........................... PASS
Reading Bootloader version............. PASS 1.0.0
Parsing HEX file....................... FAIL Address is out of range.
ISP done.
Edit: and with dfu-programmer:
Running task "Upload to USB AVR with dfu-programmer"
The keyboard should be in bootloader mode prior to programming.
If the bootloader has not been activated then the programmer will
not be able to connect and the process will fail. Activate the
bootloader by using the BOOT key (if it is programmed) or use the
reset switch on your microcontroller. If the process fails, make
sure the keyboard is in bootloader mode and then try again.
D:\Downloads\Compressed\easykeymap_windows_2_05_04\exttools/dfu-programmer.exe atmega16u2 erase
Checking memory from 0x0 to 0x2FFF... Not blank at 0x1.
Erasing flash... Success
Checking memory from 0x0 to 0x2FFF... Empty.
D:\Downloads\Compressed\easykeymap_windows_2_05_04\exttools/dfu-programmer.exe atmega16u2 flash D:\Downloads\Compressed\easykeymap_windows_2_05_04\sixkeyboard_led.hex
Bootloader and code overlap.
Use --suppress-bootloader-mem to ignore
D:\Downloads\Compressed\easykeymap_windows_2_05_04\exttools/dfu-programmer.exe atmega16u2 reset
-
So I seem to have messed up my SixKeyBoard using this =/ I was just trying to get the LEDs enabled, but now it's unresponsive after attempting to flash it. Every time I try to flash my layout it says "Address out of range". So I'm guessing the hex file it created is too large? How do I fix this?
hmmm. i will need to look into this. the 6key has never been tested. im glad you are giving it a whirl. have successfully programmed any easyavr firmware to it?
No, it failed on the first try & erased the default firmware in the process. It just shows up as an ATmega16u2 DFU now. Here is a readout of what I get when trying to program it using flip:
Running task "Upload to USB AVR with Flip"
The keyboard should be in bootloader mode prior to programming.
If the bootloader has not been activated then the programmer will
not be able to connect and the process will fail. Activate the
bootloader by using the BOOT key (if it is programmed) or use the
reset switch on your microcontroller. If the process fails, make
sure the keyboard is in bootloader mode and then try again.
C:\Program Files (x86)\Atmel\Flip 3.4.7\bin\batchisp.exe -device atmega16u2 -hardware USB -operation onfail abort loadbuffer D:\Downloads\Compressed\easykeymap_windows_2_05_04\sixkeyboard_led.hex memory FLASH erase F blankcheck program verify start reset 0
Running batchisp 1.2.5 on Sun Apr 23 18:51:46 2017
ATMEGA16U2 - USB - USB/DFU
Device selection....................... PASS
Hardware selection..................... PASS
Opening port........................... PASS
Reading Bootloader version............. PASS 1.0.0
Parsing HEX file....................... FAIL Address is out of range.
ISP done.
Edit: and with dfu-programmer:
Running task "Upload to USB AVR with dfu-programmer"
The keyboard should be in bootloader mode prior to programming.
If the bootloader has not been activated then the programmer will
not be able to connect and the process will fail. Activate the
bootloader by using the BOOT key (if it is programmed) or use the
reset switch on your microcontroller. If the process fails, make
sure the keyboard is in bootloader mode and then try again.
D:\Downloads\Compressed\easykeymap_windows_2_05_04\exttools/dfu-programmer.exe atmega16u2 erase
Checking memory from 0x0 to 0x2FFF... Not blank at 0x1.
Erasing flash... Success
Checking memory from 0x0 to 0x2FFF... Empty.
D:\Downloads\Compressed\easykeymap_windows_2_05_04\exttools/dfu-programmer.exe atmega16u2 flash D:\Downloads\Compressed\easykeymap_windows_2_05_04\sixkeyboard_led.hex
Bootloader and code overlap.
Use --suppress-bootloader-mem to ignore
D:\Downloads\Compressed\easykeymap_windows_2_05_04\exttools/dfu-programmer.exe atmega16u2 reset
Okay thanks. I'll get this fixed right up and you'll be up and running no problem. It appears I allowed the build to become too large. I need to put a new check into the build process. I'll report back soon.
-
Okay thanks. I'll get this fixed right up and you'll be up and running no problem. It appears I allowed the build to become too large. I need to put a new check into the build process. I'll report back soon.
Awesome! Thanks so much! =]
-
Okay thanks. I'll get this fixed right up and you'll be up and running no problem. It appears I allowed the build to become too large. I need to put a new check into the build process. I'll report back soon.
Awesome! Thanks so much! =]
Okay, I've confirmed. The ATmega16U2 build is too big by 78 bytes. I'll find something unnecessary to trim.
-
Okay there is a new release 2.5.5. That should work.
-
Okay there is a new release 2.5.5. That should work.
Wow! That was absurdly fast, thanks so much! I'll let you know how it goes =]
-
ok so flashing succeeds now, the rear LED lights up & it is recognized as an easyavr keyboard, but none of the switches are working &
neither are the switch LEDs =/
edit: I'm a dipsh*t, i soldered the LEDs in backwards, switches still aren't assigning though
-
ok so flashing succeeds now, the rear LED lights up & it is recognized as an easyavr keyboard, but none of the switches are working & neither are the switch LEDs =/
edit: I'm a dipsh*t, i soldered the LEDs in backwards, switches still aren't assigning though
Alright, are you sure your swich LEDs are soldered in correctly?
-
ok so flashing succeeds now, the rear LED lights up & it is recognized as an easyavr keyboard, but none of the switches are working & neither are the switch LEDs =/
edit: I'm a dipsh*t, i soldered the LEDs in backwards, switches still aren't assigning though
Alright, are you sure your swich LEDs are soldered in correctly?
Yah the LEDs were backwards, turning them around worked. Switches are in fine, just not being assigned.
-
ok so flashing succeeds now, the rear LED lights up & it is recognized as an easyavr keyboard, but none of the switches are working & neither are the switch LEDs =/
edit: I'm a dipsh*t, i soldered the LEDs in backwards, switches still aren't assigning though
Alright, are you sure your swich LEDs are soldered in correctly?
Yah the LEDs were backwards, turning them around worked. Switches are in fine, just not being assigned.
Yeah I think the config file is wrong. Are you using the windows binary or are you running from source?
-
I am curious to why I cannot get this macro working:
Med v\ALT(132)nlig h\ALT(132)lsning,
It is supposed to output: Med vänlig hälsning, (Best regards, in Swedish)
Instead this is the output:
(http://i.imgur.com/PBhRHt5.png)
It seems the first ascii-code comes out right, but the second doesnt.
Edit: I solved it by entering ' instead of the ascii code, which is where ä is located on a keyboard with a swedish layouy. But it would still be nice to know why the ascii codes did not work.
-
ok so flashing succeeds now, the rear LED lights up & it is recognized as an easyavr keyboard, but none of the switches are working & neither are the switch LEDs =/
edit: I'm a dipsh*t, i soldered the LEDs in backwards, switches still aren't assigning though
Alright, are you sure your swich LEDs are soldered in correctly?
Yah the LEDs were backwards, turning them around worked. Switches are in fine, just not being assigned.
Yeah I think the config file is wrong. Are you using the windows binary or are you running from source?
Windows binary, but I can install it on my linux machine if the command line output would help you.
-
I am curious to why I cannot get this macro working:
Med v\ALT(132)nlig h\ALT(132)lsning,
It is supposed to output: Med vänlig hälsning, (Best regards, in Swedish)
Instead this is the output:
Show Image
(http://i.imgur.com/PBhRHt5.png)
It seems the first ascii-code comes out right, but the second doesnt.
Edit: I solved it by entering ' instead of the ascii code, which is where ä is located on a keyboard with a swedish layouy. But it would still be nice to know why the ascii codes did not work.
I just tried it on my keyboard, and I got the same problem. I'd really like to know what's going on too. If I put spaces around the second altcode i get the umlaut. Not sure why being next to different letters makes it screw up like that. I'll look into it.
-
ok so flashing succeeds now, the rear LED lights up & it is recognized as an easyavr keyboard, but none of the switches are working & neither are the switch LEDs =/
edit: I'm a dipsh*t, i soldered the LEDs in backwards, switches still aren't assigning though
Alright, are you sure your swich LEDs are soldered in correctly?
Yah the LEDs were backwards, turning them around worked. Switches are in fine, just not being assigned.
Yeah I think the config file is wrong. Are you using the windows binary or are you running from source?
Windows binary, but I can install it on my linux machine if the command line output would help you.
I'll give you a test build with a slightly altered config file.
-
I am curious to why I cannot get this macro working:
Med v\ALT(132)nlig h\ALT(132)lsning,
It is supposed to output: Med vänlig hälsning, (Best regards, in Swedish)
Instead this is the output:
Show Image
(http://i.imgur.com/PBhRHt5.png)
It seems the first ascii-code comes out right, but the second doesnt.
Edit: I solved it by entering ' instead of the ascii code, which is where ä is located on a keyboard with a swedish layouy. But it would still be nice to know why the ascii codes did not work.
I found the problem. The AVR is very short on RAM, so the buffer to send autokey data such as macros is only 8 characters. It turns out that it lifts the modifier keys between filling up the buffer. Your ALT code fell on the 16th character, which means it was lifting the ALT key between the 1 and the 32. I will implement a fix.
-
ok so flashing succeeds now, the rear LED lights up & it is recognized as an easyavr keyboard, but none of the switches are working & neither are the switch LEDs =/
edit: I'm a dipsh*t, i soldered the LEDs in backwards, switches still aren't assigning though
Alright, are you sure your swich LEDs are soldered in correctly?
Yah the LEDs were backwards, turning them around worked. Switches are in fine, just not being assigned.
Yeah I think the config file is wrong. Are you using the windows binary or are you running from source?
Windows binary, but I can install it on my linux machine if the command line output would help you.
I'll give you a test build with a slightly altered config file.
Sounds good! I'll let you know if it works once you post it =]
-
ok so flashing succeeds now, the rear LED lights up & it is recognized as an easyavr keyboard, but none of the switches are working & neither are the switch LEDs =/
edit: I'm a dipsh*t, i soldered the LEDs in backwards, switches still aren't assigning though
Alright, are you sure your swich LEDs are soldered in correctly?
Yah the LEDs were backwards, turning them around worked. Switches are in fine, just not being assigned.
Yeah I think the config file is wrong. Are you using the windows binary or are you running from source?
Windows binary, but I can install it on my linux machine if the command line output would help you.
I'll give you a test build with a slightly altered config file.
Sounds good! I'll let you know if it works once you post it =]
okay try Release v2.05.06 that was just posted. See if it makes a difference. thanks.
-
I am curious to why I cannot get this macro working:
Med v\ALT(132)nlig h\ALT(132)lsning,
It is supposed to output: Med vänlig hälsning, (Best regards, in Swedish)
Instead this is the output:
Show Image
(http://i.imgur.com/PBhRHt5.png)
It seems the first ascii-code comes out right, but the second doesnt.
Edit: I solved it by entering ' instead of the ascii code, which is where ä is located on a keyboard with a swedish layouy. But it would still be nice to know why the ascii codes did not work.
The fix is in the new release. Sorry it took a while; I have a baby, it keeps me busy.
-
ok so flashing succeeds now, the rear LED lights up & it is recognized as an easyavr keyboard, but none of the switches are working & neither are the switch LEDs =/
edit: I'm a dipsh*t, i soldered the LEDs in backwards, switches still aren't assigning though
Alright, are you sure your swich LEDs are soldered in correctly?
Yah the LEDs were backwards, turning them around worked. Switches are in fine, just not being assigned.
Yeah I think the config file is wrong. Are you using the windows binary or are you running from source?
Windows binary, but I can install it on my linux machine if the command line output would help you.
I'll give you a test build with a slightly altered config file.
Sounds good! I'll let you know if it works once you post it =]
okay try Release v2.05.06 that was just posted. See if it makes a difference. thanks.
Perfection! =D Thank you SO much for your help, I really appreciate it!
-
I am curious to why I cannot get this macro working:
Med v\ALT(132)nlig h\ALT(132)lsning,
It is supposed to output: Med vänlig hälsning, (Best regards, in Swedish)
Instead this is the output:
Show Image
(http://i.imgur.com/PBhRHt5.png)
It seems the first ascii-code comes out right, but the second doesnt.
Edit: I solved it by entering ' instead of the ascii code, which is where ä is located on a keyboard with a swedish layouy. But it would still be nice to know why the ascii codes did not work.
The fix is in the new release. Sorry it took a while; I have a baby, it keeps me busy.
Yeah, babies tend to keep you busy. Thanks a bunch for keeping Easy AVR updated, it is much appreciated.
-
Was wondering if there is any chance of this supporting GON's Nerd60 (and the other boards he stocks). He has a tool for custom layouts, but Easy AVR is way nicer, and it would be awesome if all my keyboards were editable with the same application.
-
it is possible, at least on his original boards, however they were never added with official support because he uses a custom boot which is not supported. iirc, use of tmk or easyavr required an isp loader to load DFU first. not straightforward
Sent from my HTC6545LVW using Tapatalk
-
Is it possible to program the AMJ60 with this (http://www.ebay.com.au/itm/AMJ60-pre-soldered-DIY-GH60-Keyboard-PCB-Backlit-LED-60-cherry-MX-/172659091475?)?
-
if it is really just a gh60 then it should work.
Sent from my HTC6545LVW using Tapatalk
-
Apparently it's different enough that the normal GH60 TMK flashing method won't work.
-
I need to make layout for my GH60 with bottom row 1.5u 1u 1.5u 7u 1.5u 1u 1.5u, with split shift and backspace.
Is this the correct way to do so:
(http://i.imgur.com/Odxj5yy.png)
-
I have just purchased a JD40 through mecmarket from somebody who has been using the QMK firmware. Is there any reason why a JD40 would not work with this? Different PCBS, QMK preventing this from working etc? I have used AVR USB for a planck, so dont want to have to learn QMK for this new board.
Any feedback is most appreciated.
-
I have just purchased a JD40 through mecmarket from somebody who has been using the QMK firmware. Is there any reason why a JD40 would not work with this? Different PCBS, QMK preventing this from working etc? I have used AVR USB for a planck, so dont want to have to learn QMK for this new board.
Any feedback is most appreciated.
The JD40 is supported. I don't see any reason why QMK would cause any issue.
-
I have modified easyavr \ firmware content, run run.bat, but the procedure with the previous, should be how to do?
-
I have modified easyavr \ firmware content, run run.bat, but the procedure with the previous, should be how to do?
I can't understand what you're trying to say.
-
I have modified easyavr \ firmware content, run run.bat, but the procedure with the previous, should be how to do?
I can't understand what you're trying to say.
I modified the keyboard in the console above the name shown, run run.bat, then update to 32u4 inside, but the name is the same as before is easyavr.
In addition, the following three what role, how should the operation? thank you for your help
Compile.bat
Incorporated.bat
Package.bat
-
Well thank god I found this. I really don't fancy using O2D at all.
I will test this out on my Lightsaver V2 some time this week and let you know how it goes.
-
Where exactly do you get custom keys done? It's giving me just the set ansi keys but those won't do.
-
what?
Sent from my HTC6545LVW using Tapatalk
-
what?
Sent from my HTC6545LVW using Tapatalk
I'm trying to make a hex file with the mapper but it seems I'm allowed only to use preset character combos.
-
what?
Sent from my HTC6545LVW using Tapatalk
I'm trying to make a hex file with the mapper but it seems I'm allowed only to use preset character combos.
What character do you want to use that you don't have?
Sent from my HTC6545LVW using Tapatalk
-
what?
Sent from my HTC6545LVW using Tapatalk
I'm trying to make a hex file with the mapper but it seems I'm allowed only to use preset character combos.
What character do you want to use that you don't have?
Sent from my HTC6545LVW using Tapatalk
For example Caret only comes as a package deal with 6. There no way to assign Caret with another character.
-
If what you're looking to modify is handled by a different language layout than EN_US, then you're better off adjusting your input language in the OS.
You can however make any key on the keyboard emit caret (key code 6, with mods shift). If you want shift + 6 on your keyboard to do something other than caret, then you'd define an alternate function layer and bind the physical shift to the new logical layer instead of binding physical shift to logical shift (but be aware that your new shift key does not necessarily mean shift any more)
Does that help give you some ideas, or did I create more questions? :)
-
there may be a bit of confusion going on. keyboards don't send characters to the host PC, they send scancodes. the pc interprets scancodes and creates characters. Caret and 6 are on the same scancode on US keyboards.
Sent from my HTC6545LVW using Tapatalk
-
Does this work with the Zeal60?
Sorry if this was asked before.
-
JD40 MkII .. but with a single 6.25U spacebar. I've tried setting the default config "backspace" and "space" both to space but it does not seem to work. Any ideas? I'm guessing i'm just doing something wrong.
-
Does this work with the Zeal60?
Sorry if this was asked before.
Looks like this is not currently supported
-
JD40 MkII .. but with a single 6.25U spacebar. I've tried setting the default config "backspace" and "space" both to space but it does not seem to work. Any ideas? I'm guessing i'm just doing something wrong.
I don't have enough information to answer this question. I did not add support for that board because I don't own one. Someone else did and I assume they tested it. Does the rest of the keyboard work?
-
JD40 MkII .. but with a single 6.25U spacebar. I've tried setting the default config "backspace" and "space" both to space but it does not seem to work. Any ideas? I'm guessing i'm just doing something wrong.
I don't have enough information to answer this question. I did not add support for that board because I don't own one. Someone else did and I assume they tested it. Does the rest of the keyboard work?
It seems to, yes. I will pull it apart and see what pin outs go to what and hopefully identify which "space" i'm soldered to.
-
I have a sixkeyboard and got Easy AVR installed on it mostly because I need a nice way to do a repetitive macro: Right click,down,down,enter
But it looks like easy avr does not support macros that use the mouse.
I don't really have a clue what I am doing, python makes me head spin and i've never compiled firmware before (till I made one that temporarily broke my keyboard a few moments ago)
But I was hoping someone could help fill in the gaps.
So, the first part is to get the macro parser to recognize the mouse codes, simple enough.
https://pastebin.com/cnFEURza (https://pastebin.com/cnFEURza)
But the problem is that (as best I can tell) this all gets saved, and then ran by autokey.c which shoved the codes directly into enqueue_key, which is only made to report about the keyboard.
(I suspected that this means that macros which use the volume commands that should be supported.. would not work, and my tests confirmed that)
So I figured that there is already a good function to pick what device we are talking about, handle_code_actuate, and it can eventually end up with enqueue_key or something more appropriate like set_mousebutton
https://pastebin.com/B4Y9wJ5P (https://pastebin.com/B4Y9wJ5P)
The issue, is that this is all atmel c code now, which did not like compiling. I was able to switch the board target easily enough, but it is clear that I needed to define __AVR_ATmega16U2__ and BOARD_SIZE_CARD, but I am not really sure how to do this. The compile.bat is out of date I think, I ended up just manually editing the defines, which gave me a build that does not run.
Hope someone has time to help.
Either way, thanks so much for this software, it's the only reason i got the sixkeyboard.
Edit: I just went and tried from a fresh slate again. I still don't know where to find these compile defines in visual studio, but manually editing firmware.cproj seemed to do the trick. Maybe it was just that it wasn't too late at night, but the build is working great for me now. Right clicks and volume adjustments in a macro are working!
Feel free to use the patches for whatever, i would imagine you would get some interesting results if you made macro 1 call macro 1 inside of it.. but I think for most things, possibly safe from an ignorant perspective. I will be doing some more testing.
-
Edit: I just went and tried from a fresh slate again. I still don't know where to find these compile defines in visual studio, but manually editing firmware.cproj seemed to do the trick. Maybe it was just that it wasn't too late at night, but the build is working great for me now. Right clicks and volume adjustments in a macro are working!
Feel free to use the patches for whatever, i would imagine you would get some interesting results if you made macro 1 call macro 1 inside of it.. but I think for most things, possibly safe from an ignorant perspective. I will be doing some more testing.
Cool! So the files you've uploaded are updated and working?
Also, does this mean we can get keystrokes for mousewheel scrolling? I have a few apps that only work with those!
-
Cool! So the files you've uploaded are updated and working?
Yes, good to go
Also, does this mean we can get keystrokes for mousewheel scrolling? I have a few apps that only work with those!
The changes I did just make it so that you can use any of the existing commands (like mouse and media buttons) inside of a macro. Before, the macro would only work with keyboard keys.
I might look at mouse wheel scrolling.. probably possible, who knows :)
-
If you have good patches that you think should be incorporated, you can create a pull request on GitHub
-
Trying to use caps-lock as FN toggle (basically toggle FN layer on/off using the caps lock key). I set the key to FN and mode to toggle, but it locks itself into FN layer and never returns on second tap on the capslock key. Is this not possible or ?
-
Trying to use caps-lock as FN toggle (basically toggle FN layer on/off using the caps lock key). I set the key to FN and mode to toggle, but it locks itself into FN layer and never returns on second tap on the capslock key. Is this not possible or ?
On the second layer, did you set it to take you back to layer 1? Once you toggle into that second layer you'll need a key to toggle back to layer 1, since you'll be in the second layer and the key you programmed is still in the first layer
-
On the second layer, did you set it to take you back to layer 1? Once you toggle into that second layer you'll need a key to toggle back to layer 1, since you'll be in the second layer and the key you programmed is still in the first layer
What is the code to go back to default layer? I can only see the FNx in the list but not the default layer.
-
What is the code to go back to default layer?
If I recall correctly, if mode is set to Normal, then the Fn layer is momentary, if you let the key up the default layer will be active again. If it is set on toggle, you have to press the Fn key again.
-
On the second layer, did you set it to take you back to layer 1? Once you toggle into that second layer you'll need a key to toggle back to layer 1, since you'll be in the second layer and the key you programmed is still in the first layer
What is the code to go back to default layer? I can only see the FNx in the list but not the default layer.
If a FN is 'toggle', then to go back to the previous layer you have to hit the same FN key again. That's why it has to be mapped on both layers.
-
I'm trying to program my ORI60 without using the sketchy chinese site for configuration. Uploading the bin generated by easyavr causes no keys to work, but using the chinese site works just fine. I am using the ori60.py posted earlier in the thread. Any ideas?
-
HELP! Is there anyone out there who would be willing to help me out. I've got my latest board put together but have no idea how to compile the layout for firmware. It's a 5x12 matrix.[attach=1]
-
I've got my latest board put together but have no idea how to compile the layout for firmware.
Inside the archive you'll find two files.
The .py goes in C:\Users\_you_\.EasyAVR\boards\
The .dat goes in the Easykeymap root folder.
Make sure you restart the Easykeymap client after you have copied these files.
Also, please note that I know absolutely nothing about Mac OS, so I took a wild guess about mod icons, so please double check them.
I removed LED indicators pins from the config file because I recall you had none on your keyboard, eventually we'll see to add those.
Shouldn't your firmware work, change the strobe_cols and strobe_rows value in the .py files (lines 65 and 69).
-
HELP! Is there anyone out there who would be willing to help me out. I've got my latest board put together but have no idea how to compile the layout for firmware. It's a 5x12 matrix. (Attachment Link)
Did you follow the directions for configuring a handwire board?
Sent from my HTC6545LVW using Tapatalk
-
I've got my latest board put together but have no idea how to compile the layout for firmware.
Inside the archive you'll find two files.
The .py goes in C:\Users\_you_\.EasyAVR\boards\
The .dat goes in the Easykeymap root folder.
Make sure you restart the Easykeymap client after you have copied these files.
Also, please note that I know absolutely nothing about Mac OS, so I took a wild guess about mod icons, so please double check them.
I removed LED indicators pins from the config file because I recall you had none on your keyboard, eventually we'll see to add those.
Shouldn't your firmware work, change the strobe_cols and strobe_rows value in the .py files (lines 65 and 69).
WOW! That was quick! I can't express how much I appreciate your doing that for me. My complete lack of understanding of computer language protocol makes me embarrassingly dependent on others in this arena. Thank you.
Shouldn't your firmware work, change the strobe_cols and strobe_rows value in the .py files (lines 65 and 69).
Would that be necessary in the event that I have the polarity of the diodes reversed?
Did you follow the directions for configuring a handwire board?
Honestly, I'm not sure exactly what I did. I basically copied the general routing of traces from other boards I've made in the past.
[attach=1]
By the way— Thanks metalliqaz, for providing us with your firmware. You're a real asset to the community
I should be able to get to this after work today.
-
WOW! That was quick! I can't express how much I appreciate your doing that for me. My complete lack of understanding of computer language protocol makes me embarrassingly dependent on others in this arena. Thank you.
I admire your creations so allow me to say it was my pleasure.
Shouldn't your firmware work, change the strobe_cols and strobe_rows value in the .py files (lines 65 and 69).
Would that be necessary in the event that I have the polarity of the diodes reversed?
Most likely, but try the firmware as it is to start.
-
WOW! That was quick! I can't express how much I appreciate your doing that for me. My complete lack of understanding of computer language protocol makes me embarrassingly dependent on others in this arena. Thank you.
I admire your creations so allow me to say it was my pleasure.
You're very kind to say that. This is so exciting, I may have to cut out of work early today to flash this thing! :thumb:
-
How do I go about changing the Special Config Settings? I'm planning to lower the timing of "Max Hold Time for Tap".
I use the spacebar as Fn while holding it, and I'm not getting spaces pretty often.
Cheers!
-
How do I go about changing the Special Config Settings? I'm planning to lower the timing of "Max Hold Time for Tap".
I use the spacebar as Fn while holding it, and I'm not getting spaces pretty often.
Cheers!
Map a key to Config console (SCANCODE_CONFIG) in your layout. Reprogram the keyboard and bring it online. Place the cursor in Notepad.exe. Press the CONFIG button. Follow the prompts. Remember to exit the menu system before doing other things with your computer.
-
Hi guys!
I'm a huge newb when it comes to anything programming related but i really wanted to give this a shot. I was thinking about re-programming 1 of my keyboards, most likely my CM QuickFire Rapid because i'm pretty sure that it's fully programmable. The issue is i don't really have an idea on what exactly to do. My objective is to make a hotkey efficient keyboard for Starcraft 1 (Broodwar), what i had in mind was:
To rebind f2, f3 and f4 to Q,W and E // 0 to ` (tilde key, next to 1) // 9 to tab // tab to caps (no need to re-bind caps lock) + a re-toggle command in order to use my normal layout on windows.
__________________________
I'm gonna try to practice re-programming 1 of my used QuickFire's and see how it goes, any help would be greatly appreciated. I'm not really sure how to program my regular windows layout to re-toggle, i want to be able to switch back and forth between a regular keyboard layout and my gaming layout.
EDIT: When i try to "Build your firmware into a .hex file (File menu)" i get a message that says: "BOOT key not found, You do not have key bound to BOOT mode. Without it you can't easily reprogram your keyboard. Are you sure this is what you want?".
What's a BOOT key and how do i bind a key to it?
EDIT2: Is it normal that my FN key is called "App" on Quickfire Rapid (Frosty Flake)? I'm not sure how to set my function in order to swap between the 2 layouts. Seems like my fuction key doesnt even work, no matter how many times i go on "App" and try to switch it to Function (by selecting App and hitting the fuction key on my quickfire) nothing happens.
EDIT3: After doing some more research it looks like this is way harder than i originally thought it would be (especially for someone like me who has 0 programming experience). I need to buy a Frosty Flake controller, install it on my QFR, then i need to run the hex file on a virtual box or something. All this is very overwhelming, i assumed that i could just change my keys via Easy AVR program and be done with it haha.
Is there anyone that sells customized QFR re-programmed boards (or any other re-programmed keyboard, it doesnt necessarily have to be a QFR)? I would pay someone for the board + programming the keys the way i want them, it's actually much complicated that i thought it would be. I don't know if any websites or posters offer this kind of service.
I was thinking about buying a Plum 75 nano, is programming that board easier than the AVR method or do i have to do the same thing? I basically just want to be able to run a program and be able to change the keys, not sure if that's possible to do with any keyboard tho.
-
@mTwTT1:
The QFR is not programmable out of the box so you do need a replacement controller to enable such feature. The Frosty Flake was made by bpiphany (https://geekhack.org/index.php?action=profile;u=6408) and you can buy it fully soldered directly from him.
Programming the board through EasyAVR is not difficult at all and you can surely find some assistance around here.
-
Would it be possible to buy a fully soldered QFR pre programmed by bpiphany as well :D? I'm honestly curious whether or not there are people who offer that service.
-
Would it be possible to buy a fully soldered QFT pre programmed by bpiphany as well :D?
You should ask him but, again, programming a controller with EasyAVR is a quite simple task.
I'm honestly curious whether or not there are people who offer that service tho.
Browse the Artisan Services subforum (https://geekhack.org/index.php?board=160.0).
-
Just programmed a GH60 Satan using AVR, with the following layout: http://www.keyboard-layout-editor.com/#/gists/c7f9f0ac904b211ff5861573267cecfe
What's the frequency of the PWM key backlighting? It's flickering visibly, and seems to be ~100hz.
Here's a video taken at 120fps, toggling between 120/60:
https://photos.app.goo.gl/eacV2agbdoZI2Wp83
-
Just programmed a GH60 Satan using AVR, with the following layout: http://www.keyboard-layout-editor.com/#/gists/c7f9f0ac904b211ff5861573267cecfe
What's the frequency of the PWM key backlighting? It's flickering visibly, and seems to be ~100hz.
Here's a video taken at 120fps, toggling between 120/60:
https://photos.app.goo.gl/eacV2agbdoZI2Wp83
Yeah so this has been a quirk right from the start. The problem is that the same firmware is supposed to work on all kinds of hardware, and hardware makers aren't consistent about how they hook up their backlights. The result was that I couldn't use the built-in PWM feature of some of the AVRs. So, instead, it actually tries to PWM in software. This is much slower.
-
I was referenced to this thread from another (https://geekhack.org/index.php?topic=90248.0 (https://geekhack.org/index.php?topic=90248.0)) because I used Easy AVR to flash my GH60 RevC, and it's experiencing a problem with right shift. You can read what's in the other thread, but basically the issue is that of the 5 possibly positions around right shift key, only the leftmost and rightmost work. The middle one, between the stabilizer holes, does not. Someone said they had to swap KC_##K3C and KC_##K3D to get their right shift working properly, but I don't even know what those values mean to Easy AVR or where they can be found.
-
hope easyavr supports leeku pcbs like tx87..
i need NKRO over USB :(
i'm sorry.. i just read from MOZ's post that leeku PCBs are not supported. need to buy USB to PS/2 converter anyway.
-
I have a QFR I've been using for a couple years with a Frosty Flake v1. In my layout I had set SCANCODE_ESCGRAVE on tilde, and the normal HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE on escape.
Recently I tried reprogramming my keyboard again, and there appears to be some bugginess with SCANCODE_ESCGRAVE on my board. When I hit the key, the keyboard behaves as though the accent mark is held down, and spams them in output until I press another key.
I have tried setting SCANCODE_ESCGRAVE on other keys, but I still see this behavior.
I am trying to track down the old build of EasyAVR I used to program the board originally, but like I said the last time I messed with it was a few years ago.
Does anyone else have a FFv1 they use more recent builds of EasyAVR with? Would like to get my ESCGRAVE back, since my muscle memory is used to it now :(
EDIT: I have worked around the issue by duplicating the layout to FN3 and assigning FN3 to the right Shift key (essentially, FN3 is the same as default layout with Shift checked for every key, lol)
-
I have a QFR I've been using for a couple years with a Frosty Flake v1. In my layout I had set SCANCODE_ESCGRAVE on tilde, and the normal HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE on escape.
Recently I tried reprogramming my keyboard again, and there appears to be some bugginess with SCANCODE_ESCGRAVE on my board. When I hit the key, the keyboard behaves as though the accent mark is held down, and spams them in output until I press another key.
I have tried setting SCANCODE_ESCGRAVE on other keys, but I still see this behavior.
I am trying to track down the old build of EasyAVR I used to program the board originally, but like I said the last time I messed with it was a few years ago.
Does anyone else have a FFv1 they use more recent builds of EasyAVR with? Would like to get my ESCGRAVE back, since my muscle memory is used to it now :(
If there is a bug in the newer code, I'm sure we can fix it. Also I have all previous releases in my Dropbox still, so that is available as a last resort.
-
I have a QFR I've been using for a couple years with a Frosty Flake v1. In my layout I had set SCANCODE_ESCGRAVE on tilde, and the normal HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE on escape.
Recently I tried reprogramming my keyboard again, and there appears to be some bugginess with SCANCODE_ESCGRAVE on my board. When I hit the key, the keyboard behaves as though the accent mark is held down, and spams them in output until I press another key.
I have tried setting SCANCODE_ESCGRAVE on other keys, but I still see this behavior.
I am trying to track down the old build of EasyAVR I used to program the board originally, but like I said the last time I messed with it was a few years ago.
Does anyone else have a FFv1 they use more recent builds of EasyAVR with? Would like to get my ESCGRAVE back, since my muscle memory is used to it now :(
EDIT: I have worked around the issue by duplicating the layout to FN3 and assigning FN3 to both Shift keys (essentially, FN3 is the same as default layout with Shift checked for every key, lol)
I think I may know what is happening. We you lifting the SHIFT key before you were lifting the ESCGRAVE key?
Edit: nevermind. I found the bug. I will fix it.
-
I have a QFR I've been using for a couple years with a Frosty Flake v1. In my layout I had set SCANCODE_ESCGRAVE on tilde, and the normal HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE on escape.
Recently I tried reprogramming my keyboard again, and there appears to be some bugginess with SCANCODE_ESCGRAVE on my board. When I hit the key, the keyboard behaves as though the accent mark is held down, and spams them in output until I press another key.
I have tried setting SCANCODE_ESCGRAVE on other keys, but I still see this behavior.
I am trying to track down the old build of EasyAVR I used to program the board originally, but like I said the last time I messed with it was a few years ago.
Does anyone else have a FFv1 they use more recent builds of EasyAVR with? Would like to get my ESCGRAVE back, since my muscle memory is used to it now :(
EDIT: I have worked around the issue by duplicating the layout to FN3 and assigning FN3 to both Shift keys (essentially, FN3 is the same as default layout with Shift checked for every key, lol)
I think I may know what is happening. We you lifting the SHIFT key before you were lifting the ESCGRAVE key?
Edit: nevermind. I found the bug. I will fix it.
Oh wow, I was not expecting such a fast response. Thanks for the update.
I had tried the oldest release available on Github to see if I could at least identify where the change happened but that didn't change the behavior for me.
-
I have created a release for 2.05.07. Give that a shot.
https://github.com/dhowland/EasyAVR/releases
-
I have created a release for 2.05.07. Give that a shot.
https://github.com/dhowland/EasyAVR/releases
That fixed it.
Thank you for the quick turnaround! I'm guessing it was something simple?
-
I have created a release for 2.05.07. Give that a shot.
https://github.com/dhowland/EasyAVR/releases
That fixed it.
Thank you for the quick turnaround! I'm guessing it was something simple?
Yes, but hard to explain
Sent from my HTC6545LVW using Tapatalk
-
stupid question but how do i open existing .hex with this software
-
stupid question but how do i open existing .hex with this software
You can't. Hex files are firmware binaries (in hex format) that are ready for loading. The keymapper loads dat files, which are layout saves.
To program hex files, its depends on your board and your pc. See the documentation
Sent from my HTC6545LVW using Tapatalk
-
stupid question but how do i open existing .hex with this software
You can't. Hex files are firmware binaries (in hex format) that are ready for loading. The keymapper loads dat files, which are layout saves.
To program hex files, its depends on your board and your pc. See the documentation
Sent from my HTC6545LVW using Tapatalk
ah i got it thanks
-
another question. When is the point of 10 layers when there are only enough keys for maximum of three layers. I am using planck keyboard.
-
another question. When is the point of 10 layers when there are only enough keys for maximum of three layers. I am using planck keyboard.
Different layouts, such as Dvorak or Colemak, on a single keyboard.
-
another question. When is the point of 10 layers when there are only enough keys for maximum of three layers. I am using planck keyboard.
All sorts of things... some people actually use the Shift key to switch layers so that you have more control over the keys.
For example on a normal keyboard "(" is shift-9. But with layers you could change things around, say:
- Unshifted / Shifted
- ( -- [
- ) -- ]
- 9 -- {
- 0 -- }
So, parenthesizes get used more often, and can now be un-shifted, while square brackets get used more often and git sifted.
People also use different layers for different "modes" or "operations" such as: Cursor movement, Media, mouse movement, numeric pads. You could re-arrange your keyboard (layer) for specific applications (Photoshop, games,...)
You can combine key presses or macros into a single key. I use HyperFn (Cmd+Alt+Ctrl+Shift) + "L" to lock my screen, HyperFn+"-" to type 42 hyphens, HyperFn + "T" to type "TODO: " whenever I need a reminder to return to a piece ion code and finish it.
Once the software has been written to support more than 2 layers it's really almost no work to support 5, 10, or 20. Just takes more memory. So why limit the number of layers arbitrarily?
-
The number of layers isn't limited arbitrarily in EasyAVR. There are space limitations.
Sent from my HTC6545LVW using Tapatalk
-
Right. I was replying to FinancialWar and his question "why so many?" -- "why 10 when I only need 3?"
My answer is the software does not set arbitrary limits, stopping at 3 layers would be limiting to users who want more than 3.
Cheers!
-
The toggle function does not work. I put a toggle function on a layer, but after I hit the button I was not able to switch back to the default layer, it just get stuck to on that layer.
-
The toggle function does not work. I put a toggle function on a layer, but after I hit the button I was not able to switch back to the default layer, it just get stuck to on that layer.
Have you assigned the same toggle button on the secondary layer as well?
-
I've been trying to get Easy AVR working for my minivan but to no avail. Personally I don't care for the online config tool and I love easy avr. has anyone got a .PY they'd be willing to share. I would be interested to see how it differs from mine. Thanks.
edit- Ive figured it out.
I have been working on minivan and this is my config file
https://drive.google.com/file/d/0B3RcqqvmHftCTjZTRUJXTl9YaE0/view
It's working.
Sorry for my bad English
-
Is there a scancode for Default layer?
-
Is there a scancode for Default layer?
I don't think you need one. If you are on L1 then press FN1 to return to default. What is your scenario?
Sent from my HTC6545LVW using Tapatalk
-
Is there a scancode for Default layer?
I don't think you need one. If you are on L1 then press FN1 to return to default. What is your scenario?
Sent from my HTC6545LVW using Tapatalk
i want to be able to double tab to get to the default layer.
For example, if I assign a key as a lockable Fn2 key, since tap will shift to layer 2, double tap it lock me to layer 2. I know I can single tap to get back to the default layer, but in my mind since I double tapped it to lock into layer 2, I want to double tap the key to exit layer 2 as well. It is just make more sense to me that to enter and exit lock must be the same method, not double tap to enter and since tap to exit. I can't seem to find a way to make it to work like that, so I wonder if there is a scancode for the default layer so that I can put that key as a lockable default layer on layer 2.
Hopefully you understand what I'm talking about.
-
Also is there a way to be able to combine tap mode with lockable mode?
that is i want a key to function as a modifier when held down, enter into that said modifier layer when double tapped, and function as a non modifier key when single tapped.
is that possible?
-
Is there a scancode for Default layer?
I don't think you need one. If you are on L1 then press FN1 to return to default. What is your scenario?
Sent from my HTC6545LVW using Tapatalk
i want to be able to double tab to get to the default layer.
For example, if I assign a key as a lockable Fn2 key, since tap will shift to layer 2, double tap it lock me to layer 2. I know I can single tap to get back to the default layer, but in my mind since I double tapped it to lock into layer 2, I want to double tap the key to exit layer 2 as well. It is just make more sense to me that to enter and exit lock must be the same method, not double tap to enter and since tap to exit. I can't seem to find a way to make it to work like that, so I wonder if there is a scancode for the default layer so that I can put that key as a lockable default layer on layer 2.
Hopefully you understand what I'm talking about.
let me look into it
Sent from my HTC6545LVW using Tapatalk
-
Also is there a way to be able to combine tap mode with lockable mode?
that is i want a key to function as a modifier when held down, enter into that said modifier layer when double tapped, and function as a non modifier key when single tapped.
is that possible?
it's not. but remember that if you did so, when you went to double tap, the first tap would send the non-modifier, which is probably not what you want
Sent from my HTC6545LVW using Tapatalk
-
Also is there a way to be able to combine tap mode with lockable mode?
that is i want a key to function as a modifier when held down, enter into that said modifier layer when double tapped, and function as a non modifier key when single tapped.
is that possible?
it's not. but remember that if you did so, when you went to double tap, the first tap would send the non-modifier, which is probably not what you want
Sent from my HTC6545LVW using Tapatalk
ah true
-
how come there is no support for ergodox
-
how come there is no support for ergodox
Because I don't own one. Ergodox contains specialized hardware that would require new code to support. I can't realistically code that without having the hardware to play with.
-
hopefully you will get one soon. Your software is awesome. Now I have to learn Ergodox software, hopefully they are as easy as yours.
-
another question. How do I enable the sound mode on my Planck?
-
another question. How do I enable the sound mode on my Planck?
I don't know what that means. What is sound mode?
Sent from my HTC6545LVW using Tapatalk
-
another question. How do I enable the sound mode on my Planck?
I don't know what that means. What is sound mode?
The Planck PCB has a buzzer connected to C6 (and ground, of course) for the Plover config.
It was made by Jack Humbert so it's actually already supported by QMK (same author).
In case you wanna look into it, the schematic is here (https://github.com/olkb/olkb_parts/blob/master/planck/schematic.pdf) and the firmware here (https://github.com/qmk/qmk_firmware/tree/master/keyboards/planck).
-
Would it be possible to add support for an XD60 with this layout? https://imgur.com/a/4pKaB (https://imgur.com/a/4pKaB).
Any info is appreciated, thanks! I really appreciate the ease of use of easyAVR
-
Would it be possible to add support for an XD60 with this layout? https://imgur.com/a/4pKaB (https://imgur.com/a/4pKaB).
Any info is appreciated, thanks! I really appreciate the ease of use of easyAVR
please supply the hardware specs of xd60
Sent from my HTC6545LVW using Tapatalk
-
please supply the hardware specs of xd60
Sent from my HTC6545LVW using Tapatalk
The controller is an atmega32u4. I'm not sure if there is more info that you would need, but if so let me know.
-
please supply the hardware specs of xd60
Sent from my HTC6545LVW using Tapatalk
The controller is an atmega32u4. I'm not sure if there is more info that you would need, but if so let me know.
Looks like the best source of info is the qmk code for it: https://github.com/qmk/qmk_firmware/tree/master/keyboards/xd60
I have 5 minutes, i'll play around with it for a minute.
-
Seconding request for XD60 support, after finding out QMK XD60 only polls at 125hz, and being unable to ghetto-map with easykeymap and gh60 layouts due to missing matrix locations, I won't be able to switch to an XD60 as my primary board until I can map it.
-
Here's a test: https://www.dropbox.com/s/v9ga1ffke89mbnd/easykeymap_windows_xd60_test.zip?dl=0
It is very close to the GH60.
Keep in mind that if your XD60 is built with RGB backlight addon, it won't work. EasyAVR doesn't support that hardware because I don't own anything that uses it.
-
Here's a test: https://www.dropbox.com/s/v9ga1ffke89mbnd/easykeymap_windows_xd60_test.zip?dl=0
It is very close to the GH60.
Keep in mind that if your XD60 is built with RGB backlight addon, it won't work. EasyAVR doesn't support that hardware because I don't own anything that uses it.
Thanks!! If the PCB has the RGB underglow LED's presoldered, would I be able to use EasyAVR? I have no need for the LED's in my case so if they don't work that's not an issue.
-
Seconding request for XD60 support, after finding out QMK XD60 only polls at 125hz, and being unable to ghetto-map with easykeymap and gh60 layouts due to missing matrix locations, I won't be able to switch to an XD60 as my primary board until I can map it.
you can also edit QMK polling rate, hasu helped me out with this like yesterday
see qmk_firmware/tmk_core/protocol/lufa/descriptor.c
edit line 340 ".PollingIntervalMS = 0x0A"
change 0x0A to 0x01 or whatever you want the polling to be in ms
-
Here's a test: https://www.dropbox.com/s/v9ga1ffke89mbnd/easykeymap_windows_xd60_test.zip?dl=0
It is very close to the GH60.
Keep in mind that if your XD60 is built with RGB backlight addon, it won't work. EasyAVR doesn't support that hardware because I don't own anything that uses it.
Thanks!! If the PCB has the RGB underglow LED's presoldered, would I be able to use EasyAVR? I have no need for the LED's in my case so if they don't work that's not an issue.
Yeah, sure. Everything else will work, just not the RGB.
-
Seconding request for XD60 support, after finding out QMK XD60 only polls at 125hz, and being unable to ghetto-map with easykeymap and gh60 layouts due to missing matrix locations, I won't be able to switch to an XD60 as my primary board until I can map it.
you can also edit QMK polling rate, hasu helped me out with this like yesterday
see qmk_firmware/tmk_core/protocol/lufa/descriptor.c
edit line 340 ".PollingIntervalMS = 0x0A"
change 0x0A to 0x01 or whatever you want the polling to be in ms
Thanks, I'll keep that in mind in the future, though I have some gripes with the way some other things work in QMK, plus I'd need to learn how to build.
Here's a test: https://www.dropbox.com/s/v9ga1ffke89mbnd/easykeymap_windows_xd60_test.zip?dl=0
It is very close to the GH60.
Keep in mind that if your XD60 is built with RGB backlight addon, it won't work. EasyAVR doesn't support that hardware because I don't own anything that uses it.
XD60 with 2.25U lshift, arrows and nothing split weirdly, everything seems to work as it should, good stuff.
-
Seconding request for XD60 support, after finding out QMK XD60 only polls at 125hz, and being unable to ghetto-map with easykeymap and gh60 layouts due to missing matrix locations, I won't be able to switch to an XD60 as my primary board until I can map it.
you can also edit QMK polling rate, hasu helped me out with this like yesterday
see qmk_firmware/tmk_core/protocol/lufa/descriptor.c
edit line 340 ".PollingIntervalMS = 0x0A"
change 0x0A to 0x01 or whatever you want the polling to be in ms
Thanks, I'll keep that in mind in the future, though I have some gripes with the way some other things work in QMK, plus I'd need to learn how to build.
Here's a test: https://www.dropbox.com/s/v9ga1ffke89mbnd/easykeymap_windows_xd60_test.zip?dl=0
It is very close to the GH60.
Keep in mind that if your XD60 is built with RGB backlight addon, it won't work. EasyAVR doesn't support that hardware because I don't own anything that uses it.
XD60 with 2.25U lshift, arrows and nothing split weirdly, everything seems to work as it should, good stuff.
ye just in case qaz didn't have time to sort everything out. His tool's pretty neat and if it works for you then that's good
-
Hi experts,
How could I use Easy AVR to build GH60(satan) firmware which support this layout https://imgur.com/r/mechanicalkeyboards/vTHn2 (https://imgur.com/r/mechanicalkeyboards/vTHn2) ?
http://www.keyboard-layout-editor.com/#/gists/1832de6ccf45580fb2d1121650bd2b85
(http://www.keyboard-layout-editor.com/#/gists/1832de6ccf45580fb2d1121650bd2b85)
Is there any way to import my KLE layout to Easy AVR or modify the current Gh60(satan) layout?
Thanks
-
How could I use Easy AVR to build GH60(satan) firmware which support this layout https://imgur.com/r/mechanicalkeyboards/vTHn2 (https://imgur.com/r/mechanicalkeyboards/vTHn2) ?
http://www.keyboard-layout-editor.com/#/gists/1832de6ccf45580fb2d1121650bd2b85 (http://www.keyboard-layout-editor.com/#/gists/1832de6ccf45580fb2d1121650bd2b85)
Try importing this layout. File -> Open Layout -> File -> Build Firmware then flash it.
[attachurl=1]
Is there any way to import my KLE layout to Easy AVR or modify the current Gh60(satan) layout?
Not as far as I know.
-
I've been meaning to make a converter, just haven't gotten around to it. Maybe over the holidays
-
How could I use Easy AVR to build GH60(satan) firmware which support this layout https://imgur.com/r/mechanicalkeyboards/vTHn2 (https://imgur.com/r/mechanicalkeyboards/vTHn2) ?
http://www.keyboard-layout-editor.com/#/gists/1832de6ccf45580fb2d1121650bd2b85 (http://www.keyboard-layout-editor.com/#/gists/1832de6ccf45580fb2d1121650bd2b85)
Try importing this layout. File -> Open Layout -> File -> Build Firmware then flash it.
(Attachment Link)
Is there any way to import my KLE layout to Easy AVR or modify the current Gh60(satan) layout?
Not as far as I know.
Thank you very much.
-
Hi experts,
How could I use Easy AVR to build GH60(satan) firmware which support this layout https://imgur.com/r/mechanicalkeyboards/vTHn2 (https://imgur.com/r/mechanicalkeyboards/vTHn2) ?
http://www.keyboard-layout-editor.com/#/gists/1832de6ccf45580fb2d1121650bd2b85
(http://www.keyboard-layout-editor.com/#/gists/1832de6ccf45580fb2d1121650bd2b85)
Is there any way to import my KLE layout to Easy AVR or modify the current Gh60(satan) layout?
Thanks
That layout already exists in Easy AVR. When you create a new Satan layout, choose PURE at the bottom after selecting GH60 (Satan)
-
Amazing work!Can this firmware support rgb?
-
Amazing work!Can this firmware support rgb?
It doesn't right now. It could, but I don't have any boards with RGB, so I can't properly develop it. Someone on GitHub created a pull request with support for their RGB board, but it wasn't integrated well enough for me to incorporate it into the main project (his code only set the colors once on startup)
-
I really, really miss this software. I used it for a long time with my departed Planck.
Is there anyway you could add KBD75 support? My pcb is QMK :)s
-
I really, really miss this software. I used it for a long time with my departed Planck.
Is there anyway you could add KBD75 support? My pcb is QMK :)s
Send me the specs of the board I'll check it out.
-
https://kbdfans.myshopify.com/products/kbd75-keyboard-set
Does this help? :)
-
https://kbdfans.myshopify.com/products/kbd75-keyboard-set
Does this help? :)
Yeah that should be good enough. If it's an AVR and code is on github then I can work it out. I'll need you to help me test, though.
-
https://kbdfans.myshopify.com/products/kbd75-keyboard-set
Does this help? :)
Yeah that should be good enough. If it's an AVR and code is on github then I can work it out. I'll need you to help me test, though.
Absolutely :)
Am I out of luck for AVR & my Southpaw 65 based on TMK
-
https://kbdfans.myshopify.com/products/kbd75-keyboard-set
Does this help? :)
Okay, this might work: easykeymap_windows_kbd75_test.zip (https://www.dropbox.com/s/5yfdhoh6no9w8yo/easykeymap_windows_kbd75_test.zip?dl=0)
-
Thanks man! I'm going to test it today after work :)
Edit: How did you want me to test it? By simply compiling it and testing the stock firmware you put on here?
-
Thanks man! I'm going to test it today after work :)
Edit: How did you want me to test it? By simply compiling it and testing the stock firmware you put on here?
Just use it as you normally would. Create a layout and program it. KBD75 is very similar to the GH60 so I think it will work, but I'm not sure that I have the bottom row mapped right, especially the space.
You never have to compile anything with EasyAVR, just build and burn. I should note, though, that if they have installed a different bootloader then it won't work.
-
You nailed it minus one key -- top right corner "Pause".
Thanks again for your hard work :)
-
You nailed it minus one key -- top right corner "Pause".
Thanks again for your hard work :)
NEVERMIND. I forgot I set that hotkey as "Boot". Works flawlessly!
-
You nailed it minus one key -- top right corner "Pause".
Thanks again for your hard work :)
NEVERMIND. I forgot I set that hotkey as "Boot". Works flawlessly!
Cool. Now, does that board have any Lock LEDs? Also, what does it have for backlights? Is there RGB?
-
You nailed it minus one key -- top right corner "Pause".
Thanks again for your hard work :)
NEVERMIND. I forgot I set that hotkey as "Boot". Works flawlessly!
Cool. Now, does that board have any Lock LEDs? Also, what does it have for backlights? Is there RGB?
It has under PCB LED's built in. I believe you can add switch LED's as well.
-
You nailed it minus one key -- top right corner "Pause".
Thanks again for your hard work :)
NEVERMIND. I forgot I set that hotkey as "Boot". Works flawlessly!
Cool. Now, does that board have any Lock LEDs? Also, what does it have for backlights? Is there RGB?
It has under PCB LED's built in. I believe you can add switch LED's as well.
Do they work?
-
Don't suppose this is the place to make a request for a new keyboard layout? I'm working with a Cherry SPOS G86-63401.
-
Don't suppose this is the place to make a request for a new keyboard layout? I'm working with a Cherry SPOS G86-63401.
EasyAVR only works on custom keyboards with AVR microcontrollers.
To program that Cherry SPOS you would use the tools provided by the manufacturer.
-
You nailed it minus one key -- top right corner "Pause".
Thanks again for your hard work :)
NEVERMIND. I forgot I set that hotkey as "Boot". Works flawlessly!
Cool. Now, does that board have any Lock LEDs? Also, what does it have for backlights? Is there RGB?
It has under PCB LED's built in. I believe you can add switch LED's as well.
Do they work?
Sorry just got around to recreating my layout within EasyAVR. But I'm having trouble figuring out how to create these keys:
LT(1, TAB)
So, holding it down is FN1 and tap = TAB key.
Is this possible in EasyAvr?
I tried setting the GUI Tab to FN1 and then Mode: Tap Key - TAB
-
You nailed it minus one key -- top right corner "Pause".
Thanks again for your hard work :)
NEVERMIND. I forgot I set that hotkey as "Boot". Works flawlessly!
Cool. Now, does that board have any Lock LEDs? Also, what does it have for backlights? Is there RGB?
It has under PCB LED's built in. I believe you can add switch LED's as well.
Do they work?
Sorry just got around to recreating my layout within EasyAVR. But I'm having trouble figuring out how to create these keys:
LT(1, TAB)
So, holding it down is FN1 and tap = TAB key.
Is this possible in EasyAvr?
I tried setting the GUI Tab to FN1 and then Mode: Tap Key - TAB
Yes it's possible and that should work. What part of the mapping isn't working for you?
-
A new feature is coming to EasyAVR. I have added a simple tool that can help you add support for new boards using input from keyboard-layout-editor.com.
It still takes some work with a text editor, because the data from keyboard-layout-editor.com doesn't contain any information about the IO pins that are used for the row/column matrix or LEDs. However it's still a good shortcut.
-
I haven't read through the whole thread (shoot me), but is there any chance Preonic support may be added? It would sure be nice to have a good gui for programming my flatboard of choice (I spend 95% of my time on ErgoDoxen).
-
I haven't read through the whole thread (shoot me), but is there any chance Preonic support may be added? It would sure be nice to have a good gui for programming my flatboard of choice (I spend 95% of my time on ErgoDoxen).
According to this (https://olkb.com/preonic/pcb) page, the new Preonic boards come with the QMK bootloader. I'm pretty sure it won't load my firmware. If the rev1 pcb uses the standard USB bootloader, then that could work.
-
Update - The KBD75 firmware seems to work great but the LED options don't seem to do anything. For whatever reason, only the top left LED is lit up (underneath the PCB).
Can you fix this by any chance?
-
Update - The KBD75 firmware seems to work great but the LED options don't seem to do anything. For whatever reason, only the top left LED is lit up (underneath the PCB).
Can you fix this by any chance?
Probably because the KBD75 has RGB backlighting. I don't own any keyboards with RGB backlighting, so it isn't supported.
I copied the hardware definition from the QMK firmware: https://github.com/qmk/qmk_firmware/blob/master/keyboards/kbd75/config.h
From that, I included pin B6 as a backlight, though I have no idea what purpose it serves on the KBD75.
-
A new feature is coming to EasyAVR. I have added a simple tool that can help you add support for new boards using input from keyboard-layout-editor.com.
It still takes some work with a text editor, because the data from keyboard-layout-editor.com doesn't contain any information about the IO pins that are used for the row/column matrix or LEDs. However it's still a good shortcut.
I'm interested in playing with this as i'd like to add first the JD40 MkII layout with the 6.25 space (i figure this is an easy place for a noob to start) but then i'd love to add in the QMK port for the Duck Lightsaver v3 once i have a better understanding of how.
So yeah, i'd love some more info on this and i'll get started.
-
A new feature is coming to EasyAVR. I have added a simple tool that can help you add support for new boards using input from keyboard-layout-editor.com.
It still takes some work with a text editor, because the data from keyboard-layout-editor.com doesn't contain any information about the IO pins that are used for the row/column matrix or LEDs. However it's still a good shortcut.
I'm interested in playing with this as i'd like to add first the JD40 MkII layout with the 6.25 space (i figure this is an easy place for a noob to start) but then i'd love to add in the QMK port for the Duck Lightsaver v3 once i have a better understanding of how.
So yeah, i'd love some more info on this and i'll get started.
It's in the readme on Github. It's still takes some hacking, but it a bit quicker
-
A new feature is coming to EasyAVR. I have added a simple tool that can help you add support for new boards using input from keyboard-layout-editor.com.
It still takes some work with a text editor, because the data from keyboard-layout-editor.com doesn't contain any information about the IO pins that are used for the row/column matrix or LEDs. However it's still a good shortcut.
I'm interested in playing with this as i'd like to add first the JD40 MkII layout with the 6.25 space (i figure this is an easy place for a noob to start) but then i'd love to add in the QMK port for the Duck Lightsaver v3 once i have a better understanding of how.
So yeah, i'd love some more info on this and i'll get started.
It's in the readme on Github. It's still takes some hacking, but it a bit quicker
Ok i'll see if i can figure it out - the section about "supporting custom boards" i assume? I'd love to get more involved with this project.
-
A new feature is coming to EasyAVR. I have added a simple tool that can help you add support for new boards using input from keyboard-layout-editor.com
Just returned from hiatus and tried this - very impressed, it even chose the appropriate sixty/tkl firmware base in case anyone's brave enough to handwire a big board :thumb:
How are you getting on with your customising OfTheWild?
-
A new feature is coming to EasyAVR. I have added a simple tool that can help you add support for new boards using input from keyboard-layout-editor.com
Just returned from hiatus and tried this - very impressed, it even chose the appropriate sixty/tkl firmware base in case anyone's brave enough to handwire a big board :thumb:
Thanks. My next step will be to record a video of me adding support start to finish when something is requested. The hope is that users can start to do it on their own.
-
^ Sounds good, though it seems pretty self explanatory - maybe I'm biased having played with it manually.
I've just tested adding a new board on a fresh Linux install and got an error about encoding using python 2.7.13 (the one used by default) but it worked when I switched to 3.4.6 - no idea what else I've broken by manually switching though, so please don't add it to the readme...
-
^ Sounds good, though it seems pretty self explanatory - maybe I'm biased having played with it manually.
I've just tested adding a new board on a fresh Linux install and got an error about encoding using python 2.7.13 (the one used by default) but it worked when I switched to 3.4.6 - no idea what else I've broken by manually switching though, so please don't add it to the readme...
That bug has already been submitted on Github and fixed.
Also, use 3.6 dude. 2.7 is old and busted.
-
Good to know, was only packaged recently so you've been busy :)
It's a fresh install of Open Suse so surprised it's so out of date - 3.4.6 is the latest (stable?) version available so that will do for now.
-
Good to know, was only packaged recently so you've been busy :)
It's a fresh install of Open Suse so surprised it's so out of date - 3.4.6 is the latest (stable?) version available so that will do for now.
Really? Wow. Python 3.7 is already in alpha. I guess OS moves slowly.
-
Hmm, that makes me wonder what else is out of date... Time for a change of distro!
-
I haven't read through the whole thread (shoot me), but is there any chance Preonic support may be added? It would sure be nice to have a good gui for programming my flatboard of choice (I spend 95% of my time on ErgoDoxen).
According to this (https://olkb.com/preonic/pcb) page, the new Preonic boards come with the QMK bootloader. I'm pretty sure it won't load my firmware. If the rev1 pcb uses the standard USB bootloader, then that could work.
Jack Humbert says that his new bootloader should be DFU compatible, unfortunately I don't have the new bootloader on anything to test.
https://www.reddit.com/r/olkb/comments/7qht0f/jacks_weekly_update_question_thread_for_2018w03/dsytfd6/ (https://www.reddit.com/r/olkb/comments/7qht0f/jacks_weekly_update_question_thread_for_2018w03/dsytfd6/)
-
Jack Humbert says that his new bootloader should be DFU compatible, unfortunately I don't have the new bootloader on anything to test.
https://www.reddit.com/r/olkb/comments/7qht0f/jacks_weekly_update_question_thread_for_2018w03/dsytfd6/ (https://www.reddit.com/r/olkb/comments/7qht0f/jacks_weekly_update_question_thread_for_2018w03/dsytfd6/)
That's good - the firmware is available so you can see the pins to use the built in 'Define new keyboard' and add it, you'll also need a KLE export. Metalliqaz was looking for someone to test this, well volunteered ;)
Unrelated - is anyone using this in Linux? I just tried to build and flash and I'm getting the error below on two GH60 boards - one works and the other I've just unwrapped ready to build so it should work. I probably broke my python but no idea how to check, changing debug to a different number changes it at the top but no useful output :confused:
sudo dfu-programmer atmega32u4 flash --debug 10 Keyboards/EasyAVR-2.05.11/keymapper/GH60.hex
target: atmega32u4
chip_id: 0x2ff4
vendor_id: 0x03eb
command: flash
quiet: false
debug: 10
device_type: AVR
------ command specific below ------
validate: true
hex file: Keyboards/EasyAVR-2.05.11/keymapper/GH60.hex
Checking memory from 0x0 to 0x6E7F... Empty.
0% 100% Programming 0x6E80 bytes...
[ X ERROR
Memory write error, use debug for more info
Will have to try in Windows.
Edit: The hex from Windows is indeed different, but it fails to flash (in Linux) with the same error. Probably a flasher problem...
-
Edit: The hex from Windows is indeed different, but it fails to flash (in Linux) with the same error. Probably a flasher problem...
Eh, that should not be the case. The build should be identical regardless of platform, as long as you are using the same version of the software and the same map.
I have never programmed with linux so I can't be much help. If you are able to program a file with Windows then that would clear the keymapper of any wrongdoing.
The error message doesn't give us much to work with. Are you sure that the board is staying in bootloader mode?
-
Thinking about it the Windows version has the UTF8 fix so it would be different. Linux has always just worked in the past and I've tried an old hex as well and that doesn't flash either - the finger of blame is definitely pointing at the flasher. Need a new distro with up to date Python as well...
-
Okay, good luck, and let me know if you find anything wrong with my stuff. I'm always eager to squish bugs.
-
All good - after upgrading dfu-programmer (which did nothing) force erasing the already erased board made it flash happily. Strange that the unused board behaved exactly the same...
As for bugs can I just check how layers are supposed to work? I thought the FN to return to the default layer was supposed to match the current layer, but putting a Toggle FN3 on layer 3 which is accessed using a Normal FN3 locks the board on layer 3, while FN2 returns to the default layer. As-is there is no way to reliably return to the default layer from a layer that is accessed from two different toggled layers.
Not sure that makes any sense written out but it could be a problem if you're looking for something to fix, I've added pics below which might help explain it.
More
(https://i.imgur.com/tLiaGh3.png)(https://i.imgur.com/W2ewTWv.png)(https://i.imgur.com/C0ry8sh.png)(https://i.imgur.com/s8FdgDb.png)
-
i'm having trouble following. Let's take it one step at a time.
- Start on default layer (L0)
- Press Fn to activate Fn Layer (L1)
- Press Fn2 to activate and lock L2
- Release Fn2
- Release Fn
- Press Fn3 to activate L3
- Press Fn2 to activate and unlock L2
- Release Fn2
- Release Fn3
- L0 should now be active
Is that right?
-
Yes that's how it works and when you put it like that it sounds like it's by sensible design. I guess I misunderstood long ago - hopefully I didn't pass the bad knowledge on! I thought it was:
7. Press Fn3 (current layer) to unlock all and return to L0
The 'problem' is that L1 and L3 are the same and only duplicated so the 'swap layer' button works. I was going to add two number pad layers for the same reason - 'back' needs to go to L0 or L2. This seems such a waste of layers, literally halving what's available.
I don't suppose the firmware knows the layer that was locked before the current one so you could add a 'previous layer' keycode? Not sure how many people would use it...
The more I think the more it sounds like I should just make the jump to Colemak, adding the qwerty layer as a backup with no helpful layers so I can enter passwords using keycap legends when drunk rather than locking myself out :))
-
In EasyAVR, there are only three layers in memory:
default_layer (usually L0 but can be changed with the config menu)
locked_layer (set when you use toggle or lockable Fn keys)
selected_layer (set when you use momentary Fn keys)
If you lock a layer and then lock a different layer, locked_layer is replaced and the previous locked layer is lost. If you lock a layer that is already locked, it falls back on the default layer.
This all works great for the way I use keyboards, but if you are used to the Up/Down concept or 'swap layer', it can get confusing. Basically what you want to do when you permanently select a layer is just use a toggle Fn key for the layer you want.
In your case, the main problem seems to be that there is no Fn0 key and it's hard to picture how to get back to Default. I really should add that. People really expect it when moving between permanant layers.
Another unfortunate issue is that the original firmware only had 2 layers: default and Fn. I wish I could go back and rename them to L0 and L1. If I remember correctly, I can't just rename them now because saved layouts would break. I'll look into that too.
-
Fair enough - I'm not used to anything as such but now I understand I'll make it work.
If you can change the default layer you really should have an Fn0 though, otherwise you can't use that layer at all - you've found your own bug!
As to the change of layer names couldn't they be substituted during load? Wouldn't want to do lots of hard coded substitutions but there are only two so could be an option.
-
I've made the changes but I still have to test it.
Programming is a good excuse to sit down and listen to some retrowave. Love me some retrowave.
-
New Release 2.06.01
- Add SCANCODE_FN0 for selecting the default layer if it isn't default
- Rename SCANCODE_FN to SCANCODE_FN1
- Python 2.7 is no longer supported, switch to Python 3.6
-
Sounds great, except the Python 3.6 bit. Really must upgrade...
-
Sounds great, except the Python 3.6 bit. Really must upgrade...
2.7 still works, I just don't support it anymore.
-
Hi, guys. Can someone help me with writing macro like on the screenshot?
-
Hi, guys. Can someone help me with writing macro like on the screenshot?
What is that supposed to do? Are you trying to map a key to Alt+Tab? If so, you don't need a macro to do that with EasyAVR.
-
Hi, guys. Can someone help me with writing macro like on the screenshot?
What is that supposed to do? Are you trying to map a key to Alt+Tab? If so, you don't need a macro to do that with EasyAVR.
It must "imitate" Alt+Tab then pressed Alt. It's the shortcut for switching windows in Windows (lol). For example, press this "alt+tab", holding it (keycode is Alt, hold). Then you just press default Tab to switch between windows.
-
Okay there's definitely a language barrier between us. I think you're trying to either:
1) Map a key to Alt+Tab.
2) Map a key to Alt when held, and Alt+Tab when tapped.
For (1), all you have to do is map the key to Tab, then add a "with modifier" option and select R_Alt.
For (2), that is not currently possible, although it probably should be, and we could add a PR to fix it.
If you want to make a macro of Alt+Tab, you it would look something like this: \ALT(\TAB,)
-
(I didn't read the code, I could be all wet here) I think what he wants is:
Key #1 behavior:
On press does Alt-down, Tab-down, Tab-up (and Alt is still down)
... on release does Alt-up
On tap does Alt-down, Tab-down, Tab-up, Alt up
Key #2: Normal Tab key behavior.
-----
Use:
Key #1-Down and release generates Alt-Tab down and Tab-Alt up == Switch to next app (using a single tap)
Key #1-Down, Key #2 tap, Key #2 tap, Key #1-up == Switch to next app + 2 (with a hold and 2 taps.)
Unusual, perhaps, but it you swap between the 2 front-most apps a lot it would add efficiency, while not eliminating the ability to get to other apps.
-
Oh, yes, I think you're right. That makes sense.
This is not currently possible with EasyAVR. The problem is getting one key to act as a modifier and a macro at the same time. Just describing that kind of behavior in the GUI is hard to imagine.
-
And the usage scenarios for this type of key combination seems (to me) to be limited as well.
kamilakas: You may have to dedicate one key for Alt, another for Tab (Like a "normal" keyboard.)
If I've misread your intent please let us know... maybe there's some other workable combo to achieve what you seek.
-
I'm having trouble with lockable/toggle fn keys on the Frosty Flake. Whenever I press a locked fn key, it acts in normal mode. Same thing for toggle mode.
Sent from my Nexus 6 using Tapatalk
-
I'm having trouble with lockable/toggle fn keys on the Frosty Flake. Whenever I press a locked fn key, it acts in normal mode. Same thing for toggle mode.
Sent from my Nexus 6 using Tapatalk
I haven't had mine out in a long time. I can try the latest code to see if it works. Are you able to send your config file?
-
I'm having trouble with lockable/toggle fn keys on the Frosty Flake. Whenever I press a locked fn key, it acts in normal mode. Same thing for toggle mode.
Sent from my Nexus 6 using Tapatalk
I haven't had mine out in a long time. I can try the latest code to see if it works. Are you able to send your config file?
You bet. FN1 is the default layer as well for some reason, but that's fine by me.
[attachmini=1]
Edit: I should mention that I'm trying to lock FN4, which can be found on the prntscrn button.
-
Sorry to bump, but have you had a chance to check this out yet?
-
Sorry to bump, but have you had a chance to check this out yet?
Yeah, sorry. I haven't forgotten, I've just been very busy. In addition to family requirements, EasyAVR is getting a major overhaul for version 3.0 and that has taken up a lot of my free programming time. I'll look tonight.
-
I'm having trouble with lockable/toggle fn keys on the Frosty Flake. Whenever I press a locked fn key, it acts in normal mode. Same thing for toggle mode.
Sent from my Nexus 6 using Tapatalk
Okay I took out my Black Petal, which is very similar to a Frosty Flake. I added a Toggle FN key to my map and it worked okay. I added a Lockable FN and it worked okay. I added the lockable FN to different FN layer and it still worked okay. I can't seem to reproduce the issue.
When you say that it "acts in normal mode" what do you mean? For example, a lockable FN key is almost identical to a normal FN key, except that it will "stick" if you double-press it. Toggle is one press on, one press off.
-
Thanks for your patience.
What I mean is that the FN layer is active when the FN key is pressed, but as soon as it's released I return to the default layer. Exactly like if I had set the mode to 'Normal'. The layer just doesn't stay on for whatever reason. This same thing happens with both 'Lockable' and 'Toggle' modes. Not really sure what's going on here, but I'll try to make a fresh layout and see if it still happens.
-
Well I don't know what's going on with my other layout, but starting fresh layout made everything work flawlessly. Thanks for your time.
-
Having a bit of trouble with the software running on my Mac. I'm running 10.13.3, with Python 3.6.4. I can get the latest version of EasyAVR to run, and I can set up my board layout using the GUI, complete with all the layers, etc., that I want. However, here's where I run into problems: When I go to save or build the layout, the options are all greyed out in the menu. I can't select anything, and so I'm just stuck. Once, I was able to save the layout, but then I couldn't build the layout. Now when I load the .dat file, the options are all immediately greyed out.
I do get the following message in my terminal window whenever I invoke the file chooser from the gui, but I'm not sure if it has anything to do with the bug I'm seeing:
objc[30220]: Class FIFinderSyncExtensionHost is implemented in both /System/Library/PrivateFrameworks/FinderKit.framework/FinderKit (0x11a67db68) and /System/Library/PrivateFrameworks/FileProvider.framework/OverrideBundles/FinderSyncCollaborationFileProviderOverride.bundle/Contents/MacOS/FinderSyncCollaborationFileProviderOverride (0x112c65cd8). One of the two will be used. Which one is undefined.
Any help would be appreciated!
-
Having a bit of trouble with the software running on my Mac. I'm running 10.13.3, with Python 3.6.4. I can get the latest version of EasyAVR to run, and I can set up my board layout using the GUI, complete with all the layers, etc., that I want. However, here's where I run into problems: When I go to save or build the layout, the options are all greyed out in the menu. I can't select anything, and so I'm just stuck. Once, I was able to save the layout, but then I couldn't build the layout. Now when I load the .dat file, the options are all immediately greyed out.
I do get the following message in my terminal window whenever I invoke the file chooser from the gui, but I'm not sure if it has anything to do with the bug I'm seeing:
objc[30220]: Class FIFinderSyncExtensionHost is implemented in both /System/Library/PrivateFrameworks/FinderKit.framework/FinderKit (0x11a67db68) and /System/Library/PrivateFrameworks/FileProvider.framework/OverrideBundles/FinderSyncCollaborationFileProviderOverride.bundle/Contents/MacOS/FinderSyncCollaborationFileProviderOverride (0x112c65cd8). One of the two will be used. Which one is undefined.
Any help would be appreciated!
Sounds like tkinter has problems on the mac. I don't have a solution for you right now because I don't have any Macs ti test with and I don't know anything about them.
But I do have good news. I am rewriting the GUI from scratch using wxPython, which is much better. Work is already underway but it will take a while.
Do you have access to any windows boxes?
-
But I do have good news. I am rewriting the GUI from scratch using wxPython, which is much better. Work is already underway but it will take a while.
Do you have access to any windows boxes?
Thanks for the quick response! I can bother a friend with Windows for a favor until your update is complete.
-
I'm using a Mac, and I just tried it with the latest Python and the latest build of EasyAVR. Worked fine for me.
I am on 10.12.6 and not 10.13.3, so maybe that's why. I know they changed the file system for High Sierra, if that would affect it.
-
I'm using a Mac, and I just tried it with the latest Python and the latest build of EasyAVR. Worked fine for me.
I am on 10.12.6 and not 10.13.3, so maybe that's why. I know they changed the file system for High Sierra, if that would affect it.
That's interesting. I have an older Mac running 10.12 that I use as a media server. I'll try that one and hope for a different result. Thanks for the tip.
-
tkinter is just bad, i'm not surprised it can work or break from version to version. That's why I'm switching to WX, because it uses the native windowing controls.
Here's a screenshot. It's early stages but you can see how the various controls now match the Windows 10 theme.
(https://i.imgur.com/VYKRQWB.png)
-
Oh that looks very good. Do you have an ETA?
-
Oh that looks very good. Do you have an ETA?
Probably weeks, if I'm being honest. Unfortunately it's hard to find time for hobby programming, and in this case it's slow going because I'm learning wx at the same time. Also this is more than just porting from tkinter to wxPython; It's a redesign to remove all the bad stuff that grew into it over the years. New save file format, new macro mini-language, new UX concept, and so on.
It's being developed in the 3.0_dev branch on the Github repository. When it's actually functional I'll begin committing the code, but it won't be truly usable until I release it.
-
You're not going crazy but I abused mod powers to remove today's inaccurate, potentially off-putting posts - in summary if you try and build a COSTAR sized matrix against the FULLSIZE firmware it doesn't work well. If you flash it in Linux it goes even less well, but can be recovered by holding in the button when you plug the Teensy in then pressing the button to put it in flash mode.
Looking forward to seeing what the new version will bring!
-
You're not going crazy but I abused mod powers to remove today's inaccurate, potentially off-putting posts - in summary if you try and build a COSTAR sized matrix against the FULLSIZE firmware it doesn't work well. If you flash it in Linux it goes even less well, but can be recovered by holding in the button when you plug the Teensy in then pressing the button to put it in flash mode.
Looking forward to seeing what the new version will bring!
I actually just added an issue (https://github.com/dhowland/EasyAVR/issues/60) for this to the 3.0 plan yesterday. I need to add a bunch of sanity checks to the config loader.
The tool originally only loaded stuff that I had made and tested, so they were assumed to be perfect and it doesn't bother checking anything. Like so many other parts of the keymapper, that code was adapted and extended until it started to fail.
So much to do...
-
I don't envy you having to code consistency and limit checks within the config file as well as crosschecking to the firmware it's based on - it's probably more complicated than the actual load function! Necessary when a simple typo can break everything though, it can happen to anyone even if they have read and understood everything.
-
I don't envy you having to code consistency and limit checks within the config file as well as crosschecking to the firmware it's based on - it's probably more complicated than the actual load function! Necessary when a simple typo can break everything though, it can happen to anyone even if they have read and understood everything.
It's not so bad, I just need to make sure the number of rows and columns is consistent between all the properties of the hardware.
Slow progress, but I really like the way it looks.
(https://i.imgur.com/iyIgjsn.png)
-
Key geometry? That's an interesting one, what about mods where the same pads are used for 1.5, 1, 1.5 or three 1.25s? Actually it's not greyed out and nor are the matix positions so maybe you can adjust everything in the editor? That would be impressive, could have the GH60 right shift correct on a 'big FN' layout rather than being swapped. Now with Alt Gr too for our European friends and their random symbols...
Looks great all round :thumb:
-
Key geometry?
I assume that's to create layouts on the fly without having to bother with the .py source.
-
Key geometry?
I assume that's to create layouts on the fly without having to bother with the .py source.
No, that is not possible at this time. I need to re-implement the functionality I had first, before I get ambitious. Those fields aren't grayed out, but they are read-only. The property dialog is moveable, so the first three fields are there to (A) make it completely unambiguous which key the user is editing and (B) give the information needed to update config files.
-
Marvellous. I'm really looking forward to this version.
One minor thing: I supposed you want Alt, rather than AltGr, in your automods list, since AltGr is basically Ctrl+Alt.
-
Marvellous. I'm really looking forward to this version.
One minor thing: I supposed you want Alt, rather than AltGr, in your automods list, since AltGr is basically Ctrl+Alt.
It was originally Alt. Then somebody submitted a pull request to change it R_Alt, because that matters on European keyboards. I just don't like how R_Alt looks, so I changed it to AltGr to match the legend on the right alt key. If it's confusing I'll change it.
-
Marvellous. I'm really looking forward to this version.
One minor thing: I supposed you want Alt, rather than AltGr, in your automods list, since AltGr is basically Ctrl+Alt.
It was originally Alt. Then somebody submitted a pull request to change it R_Alt, because that matters on European keyboards. I just don't like how R_Alt looks, so I changed it to AltGr to match the legend on the right alt key. If it's confusing I'll change it.
I guess it makes sense for ISO keyboards but ANSI users might find it confusing indeed.
-
Marvellous. I'm really looking forward to this version.
One minor thing: I supposed you want Alt, rather than AltGr, in your automods list, since AltGr is basically Ctrl+Alt.
It was originally Alt. Then somebody submitted a pull request to change it R_Alt, because that matters on European keyboards. I just don't like how R_Alt looks, so I changed it to AltGr to match the legend on the right alt key. If it's confusing I'll change it.
I guess it makes sense for ISO keyboards but ANSI users might find it confusing indeed.
Yeah it's a tough call. I'll either use AltGr, Alt (Gr), or Alt with a tooltip to explain it
-
(https://i.imgur.com/f1TTCIv.png)
-
Well, it turns out running this new version on Linux can be challenging. Python 3.6 and wxPython 4.0 are not available on anything but the most recent distros. I backed down support to python 3.5 and got it running on my Ubuntu 16.04 VM. It doesn't look as good as windows, but it looks better than the tkinter version. I think the theme Xfce is using is a little drab.
(https://i.imgur.com/kXKGNHm.png)
-
Python 3.6 and wxPython 4.0 are not available on anything but the most recent distros.
Meaning that we can't even manually install latest versions?
-
Python 3.6 and wxPython 4.0 are not available on anything but the most recent distros.
Meaning that we can't even manually install latest versions?
Sure you can, that's how I got it running. I just mean that you can't easily do a "apt install" command to get what you need.
-
Python 3.6 and wxPython 4.0 are not available on anything but the most recent distros.
Meaning that we can't even manually install latest versions?
Of course you can, but this is supposed to be 'Easy' so using the package manager should be enough.
Looks good to me, it's up to people to make it look good for them - that's the fun of Linux!
-
Python 3.6 and wxPython 4.0 are not available on anything but the most recent distros.
Meaning that we can't even manually install latest versions?
Of course you can, but this is supposed to be 'Easy' so using the package manager should be enough.
Looks good to me, it's up to people to make it look good for them - that's the fun of Linux!
On my Ubuntu xenial (16.04) VM I had to do this:
sudo apt install python3 python3-pip
sudo apt install libwxgtk3.0
sudo apt install libsdl1.2debian
sudo pip3 install -U -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-16.04 wxPython
Whereas on Ubuntu bionic (18.04), you should be able to just do this:
sudo apt install python3 python3-wxgtk4.0
So it's not bad.
-
I guess a Linux illiterate like me can manage that.
I hope to see a working version soon.
-
That bad version isn't that bad but the new one is better :thumb:
I'm looking forward to trying out the new version too, doesn't look far off.
-
That bad version isn't that bad but the new one is better :thumb:
I'm looking forward to trying out the new version too, doesn't look far off.
I have dozens of TODOs left, but the main functions are implemented, except for the new board wizard.
I uses entirely new data structures but it is able to open legacy save files and convert them.
Does anyone have a 4k screen? I don't have any way to test UI scaling for high DPI screens.
-
This wizard was such a pain to create, but it's working.
(https://i.imgur.com/NozmnnL.png)
I think I will commit what I have tonight.
-
Got excited for a moment but no commit to play with - maybe tonight?
-
This wizard was such a pain to create, but it's working.
Show Image
(https://i.imgur.com/NozmnnL.png)
I think I will commit what I have tonight.
my gosh... finally
thank you very much for your hardwork ;)
probably i'll add KMAC Mini support when I got the board.
-
Got excited for a moment but no commit to play with - maybe tonight?
I did, but it's in a branch for now.
-
This wizard was such a pain to create, but it's working.
Show Image
(https://i.imgur.com/NozmnnL.png)
I think I will commit what I have tonight.
my gosh... finally
thank you very much for your hardwork ;)
probably i'll add KMAC Mini support when I got the board.
Easiest way to do that is probably to copy and mod the KMAC config directly. IIRC the hardware is almost identical, just a different layout shape.
-
That's too clever for me first thing in the morning :))
Will have a play in a bit!
-
That's too clever for me first thing in the morning :))
Will have a play in a bit!
I will make alpha and beta releases with it for a while before replacing the existing version. They will be zip files so git isn't required
-
3.0.0 beta release: https://github.com/dhowland/EasyAVR/releases/tag/v3.00.00-beta.1
Same old executable in zip file as before for Windows users.
Python package provided for Linux users (pip3 install easykeymap-3.0.0.tar.gz)
This code is entirely untested. This is EARLY beta. Just assume it's broken so you won't be disappointed.
It now saves keymaps as JSON files, but it can still open the old save files. Just tell it to show .dat files in the Open dialog.
-
I played around v3beta for a bit and I'm liking it a lot, especially how every key gets its own pop up menu and how the scandcode picker is now summoned.
I compiled the same source in both v3beta and v2.05.11 and I'm getting a slightly smaller output from the former which must be either some sort of code optimization or Python v3 (I know little about programming so I'm guessing) either way it's very nice.
I got an error while loading a custom layout that had SCANCODE_FN in it so I'm guessing it's being dropped in favour of SCANCODE_FN0 since replacing it fixed the issue and made the firmware working as intended.
Perhaps having both should be considered to support legacy configurations.
-
I played around v3beta for a bit and I'm liking it a lot, especially how every key gets its own pop up menu and how the scandcode picker is now summoned.
I compiled the same source in both v3beta and v2.05.11 and I'm getting a slightly smaller output from the former which must be either some sort of code optimization or Python v3 (I know little about programming so I'm guessing) either way it's very nice.
I got an error while loading a custom layout that had SCANCODE_FN in it so I'm guessing it's being dropped in favour of SCANCODE_FN0 since replacing it fixed the issue and made the firmware working as intended.
Perhaps having both should be considered to support legacy configurations.
Thanks for testing it!
There should already be a function that fixes the SCANCODE_FN issue. I'll have to check why it isn't working... By the way, FN Became FN1. FN0 is entirely new.
-
I played around v3beta for a bit and I'm liking it a lot, especially how every key gets its own pop up menu and how the scandcode picker is now summoned.
I compiled the same source in both v3beta and v2.05.11 and I'm getting a slightly smaller output from the former which must be either some sort of code optimization or Python v3 (I know little about programming so I'm guessing) either way it's very nice.
I got an error while loading a custom layout that had SCANCODE_FN in it so I'm guessing it's being dropped in favour of SCANCODE_FN0 since replacing it fixed the issue and made the firmware working as intended.
Perhaps having both should be considered to support legacy configurations.
I just loaded an old save file and it correctly fixed all the FN -> FN1 keys. What was the error?
-
What was the error?
[attach=1]
For reference, this was the code.
# Easy AVR USB Keyboard Firmware Keymapper
# Copyright (C) 2013-2016 David Howland
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
"""Keyboard definition for the XMMX keyboard"""
# The first decision you have to make is to choose a hardware
# layout. Assuming you are using a Teensy2.0, ATmega32U4_16MHz_TKL
# is probably the best hardware layout for you. ATmega32U4_16MHz_SIXTY
# might also work for you, though. The sizes are defined in the
# templates/__init__.py file of the keymapper.
# Leave the rest of the imports like they are here.
import easykeymap.templates.ATmega32U4_16MHz_TKL as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config
# The name of the board in the "New" dialog
description = "XMMX"
# Unique string to identify THIS exact hardware layout
unique_id = "xmmx"
# The name of the .cfg file the system will try to find for altered
# layout options. See the configs subdir of the keymapper.
cfg_name = "xmmx"
# Hand-wired boards usually use Teensy controllers. Set this to
# True to make sure that the bootloader works.
teensy = False
# If your board has an exposed switch for going into the bootloader,
# you can set this to True and the system won't prompt you to add a
# BOOT key to your layout.
hw_boot_key = False
# These two parameters define the size of the keyboard in the display.
# Must be whole numbers in units of quarter key lengths. A TKL
# usually is 6 rows high with a 1/2 key length gutter under the Fn row.
# Therefore int(6.5*4). Apply the same logic the width. Remember
# we are talking visual width, not number of columns.
display_height = int(6.5*4)
display_width = int(18.25*4)
# The number of rows and columns in the matrix. In a hand-wired board
# each of these will correspond to a single pin.
num_rows = 6
num_cols = 17
# Keyboards work by scanning a matrix to check each key. The scan
# works by setting an active row/column (strobing) and then reading
# the status of every switch that crosses it (sensing).
# strobe_cols tells the firmware which direction you have your diodes
# installed. If diodes go from column to row, then strobe_cols must
# be False. If diodes go from row to column, then strobe_cols must be
# True.
strobe_cols = False
# strobe_low tells the firmware if a row/column should be activated
# by pulling the pin high or low. Hand-wired boards will almost always
# use strobe_low = True
strobe_low = True
# The matrix_hardware, matrix_strobe, matrix_sense parameters tell
# the firmware how to initialize the ports, what pins must be set
# for each row/column, and what order to strobe/sense. These are
# complicated and are explained fully elsewhere. It is easiest to
# configure the matrix by using the make_matrix_config function as
# shown below. Just customize 'rows' and 'cols' for your project.
matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
strobe_cols=strobe_cols,
strobe_low=strobe_low,
rows=[B0, F6, F5, F4, F1, F0],
cols=[B3, B2, B1, E6, B7, C7, C6, D4, D6, D7, B4, D0, D1, F7, D2, D3, D5],
device=firmware.device
)
# The total number of LED outputs (indicators + backlights)
num_leds = 2
# The number of LED indicators (for example, caps lock)
num_ind = 2
# The number of backlight enable modes. This counts the number of
# options available for the BL_ENABLE key. Boards without backlights
# should use the minimum value of 2.
num_bl_enab = 2
# Define the default assignments of the indicator LEDs. The length
# of this list must equal num_ind. For each LED, the first string
# is the description of the key shown in the GUI. The second string
# is the default function assigned to that LED. LED functions must
# be strings as defined in led_assignments of gui.py. Common choices
# are 'Num Lock', 'Caps Lock', 'Scroll Lock', 'Win Lock', 'Fn Active',
# 'Recording', 'Backlight', and 'Unassigned'.
led_definition = [
('LED1', 'Caps Lock'),
('LED2', 'Scroll Lock')
]
# Definition of LED pins. (indicators and backlights) Indicators
# must come first and be in the same order as defined in led_definition.
# LED_DRIVER_PULLUP is used when the pin is connected to the anode of
# the LED and the cathode is connected to ground.
# LED_DRIVER_PULLDOWN is used when the pin is connected to the cathode
# of the LED and the anode is connected to the power supply.
led_hardware = [
# Port Pin Direction
( REF_PORTB, 6, LED_DRIVER_PULLDOWN ),
( REF_PORTB, 5, LED_DRIVER_PULLDOWN )
]
# True if the board supports backlight, otherwise False
backlighting = False
# This can be used to configure different backlighting zones. Explained
# in more detail elsewhere. Length of list must equal num_bl_enab.
# Length of each tuple must equal num_leds. Tuples use the same ordering
# as led_hardware. Almost everyone should just use an all-on/all-off
# configuration. That's a list of two tuples, one with all 1s for each
# LED, the other with all 0s for each LED.
bl_modes = [
( 0, 0 ),
( 1, 1 )
]
# Just leave this here as-is.
KMAC_key = None
# Define your layout. This is a list of rows. Each row is a list
# of keys. Each key is a tuple of three items. First item is a tuple
# defining the width,height of the key. If it is just a number, it
# will be a space instead of a key. All units are in quarter key lengths,
# so a standard key would be (4,4). Second item is a tuple defining the
# row,column in the matrix for that key. Third item is the default scancode
# for that key, from scancodes.py. If a row is a number instead of a list,
# it will just make a vertical spacer.
keyboard_definition = [
[((4, 4), (0, 0), 'HID_KEYBOARD_SC_ESCAPE'),
(4, None, '0'),
((4, 4), (0, 1), 'HID_KEYBOARD_SC_F1'),
((4, 4), (0, 2), 'HID_KEYBOARD_SC_F2'),
((4, 4), (0, 3), 'HID_KEYBOARD_SC_F3'),
((4, 4), (0, 4), 'HID_KEYBOARD_SC_F4'),
(2, None, '0'),
((4, 4), (0, 5), 'HID_KEYBOARD_SC_F5'),
((4, 4), (0, 6), 'HID_KEYBOARD_SC_F6'),
((4, 4), (0, 7), 'HID_KEYBOARD_SC_F7'),
((4, 4), (0, 8), 'HID_KEYBOARD_SC_F8'),
(2, None, '0'),
((4, 4), (0, 9), 'HID_KEYBOARD_SC_F9'),
((4, 4), (0, 10), 'HID_KEYBOARD_SC_F10'),
((4, 4), (0, 11), 'HID_KEYBOARD_SC_F11'),
((4, 4), (0, 12), 'HID_KEYBOARD_SC_F12'),
(1, None, '0'),
((4, 4), (0, 14), 'HID_KEYBOARD_SC_PRINT_SCREEN'),
((4, 4), (0, 15), 'HID_KEYBOARD_SC_SCROLL_LOCK'),
((4, 4), (0, 16), 'HID_KEYBOARD_SC_PAUSE')],
2,
[((4, 4), (1, 0), 'HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE'),
((4, 4), (1, 1), 'HID_KEYBOARD_SC_1_AND_EXCLAMATION'),
((4, 4), (1, 2), 'HID_KEYBOARD_SC_2_AND_AT'),
((4, 4), (1, 3), 'HID_KEYBOARD_SC_3_AND_HASHMARK'),
((4, 4), (1, 4), 'HID_KEYBOARD_SC_4_AND_DOLLAR'),
((4, 4), (1, 5), 'HID_KEYBOARD_SC_5_AND_PERCENTAGE'),
((4, 4), (1, 6), 'HID_KEYBOARD_SC_6_AND_CARET'),
((4, 4), (1, 7), 'HID_KEYBOARD_SC_7_AND_AND_AMPERSAND'),
((4, 4), (1, 8), 'HID_KEYBOARD_SC_8_AND_ASTERISK'),
((4, 4), (1, 9), 'HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS'),
((4, 4), (1, 10), 'HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS'),
((4, 4), (1, 11), 'HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE'),
((4, 4), (1, 12), 'HID_KEYBOARD_SC_EQUAL_AND_PLUS'),
((4, 4), (1, 13), 'HID_KEYBOARD_SC_BACKSPACE'),
((4, 4), (0, 13), 'HID_KEYBOARD_SC_BACKSPACE'),
(1, None, '0'),
((4, 4), (1, 14), 'HID_KEYBOARD_SC_INSERT'),
((4, 4), (1, 15), 'HID_KEYBOARD_SC_HOME'),
((4, 4), (1, 16), 'HID_KEYBOARD_SC_PAGE_UP')],
[((6, 4), (2, 0), 'HID_KEYBOARD_SC_TAB'),
((4, 4), (2, 1), 'HID_KEYBOARD_SC_Q'),
((4, 4), (2, 2), 'HID_KEYBOARD_SC_W'),
((4, 4), (2, 3), 'HID_KEYBOARD_SC_E'),
((4, 4), (2, 4), 'HID_KEYBOARD_SC_R'),
((4, 4), (2, 5), 'HID_KEYBOARD_SC_T'),
((4, 4), (2, 6), 'HID_KEYBOARD_SC_Y'),
((4, 4), (2, 7), 'HID_KEYBOARD_SC_U'),
((4, 4), (2, 8), 'HID_KEYBOARD_SC_I'),
((4, 4), (2, 9), 'HID_KEYBOARD_SC_O'),
((4, 4), (2, 10), 'HID_KEYBOARD_SC_P'),
((4, 4), (2, 11), 'HID_KEYBOARD_SC_OPENING_BRACKET_AND_OPENING_BRACE'),
((4, 4), (2, 12), 'HID_KEYBOARD_SC_CLOSING_BRACKET_AND_CLOSING_BRACE'),
((6, 4), (2, 13), 'HID_KEYBOARD_SC_BACKSLASH_AND_PIPE'),
(1, None, '0'),
((4, 4), (2, 14), 'HID_KEYBOARD_SC_DELETE'),
((4, 4), (2, 15), 'HID_KEYBOARD_SC_END'),
((4, 4), (2, 16), 'HID_KEYBOARD_SC_PAGE_DOWN')],
[((7, 4), (3, 0), 'HID_KEYBOARD_SC_CAPS_LOCK'),
((4, 4), (3, 1), 'HID_KEYBOARD_SC_A'),
((4, 4), (3, 2), 'HID_KEYBOARD_SC_S'),
((4, 4), (3, 3), 'HID_KEYBOARD_SC_D'),
((4, 4), (3, 4), 'HID_KEYBOARD_SC_F'),
((4, 4), (3, 5), 'HID_KEYBOARD_SC_G'),
((4, 4), (3, 6), 'HID_KEYBOARD_SC_H'),
((4, 4), (3, 7), 'HID_KEYBOARD_SC_J'),
((4, 4), (3, 8), 'HID_KEYBOARD_SC_K'),
((4, 4), (3, 9), 'HID_KEYBOARD_SC_L'),
((4, 4), (3, 10), 'HID_KEYBOARD_SC_SEMICOLON_AND_COLON'),
((4, 4), (3, 11), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE'),
((4, 4), (3, 12), 'HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE'),
((5, 4), (3, 13), 'HID_KEYBOARD_SC_ENTER'),
(1, None, '0'),
((4, 4), (3, 14), '0'),
((4, 4), (3, 15), '0'),
((4, 4), (3, 16), '0')],
[((5, 4), (4, 0), 'HID_KEYBOARD_SC_LEFT_SHIFT'),
((4, 4), (4, 1), 'HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE'),
((4, 4), (4, 2), 'HID_KEYBOARD_SC_Z'),
((4, 4), (4, 3), 'HID_KEYBOARD_SC_X'),
((4, 4), (4, 4), 'HID_KEYBOARD_SC_C'),
((4, 4), (4, 5), 'HID_KEYBOARD_SC_V'),
((4, 4), (4, 6), 'HID_KEYBOARD_SC_B'),
((4, 4), (4, 7), 'HID_KEYBOARD_SC_N'),
((4, 4), (4, 8), 'HID_KEYBOARD_SC_M'),
((4, 4), (4, 9), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
((4, 4), (4, 10), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
((4, 4), (4, 11), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK'),
((7, 4), (4, 12), 'HID_KEYBOARD_SC_RIGHT_SHIFT'),
((4, 4), (4, 13), 'SCANCODE_FN'),
(1, None, '0'),
((4, 4), (4, 14), '0'),
((4, 4), (4, 15), 'HID_KEYBOARD_SC_UP_ARROW'),
((4, 4), (4, 16), '0')],
[((5, 4), (5, 0), 'HID_KEYBOARD_SC_LEFT_CONTROL'),
((5, 4), (5, 1), 'HID_KEYBOARD_SC_LEFT_GUI'),
((5, 4), (5, 2), 'HID_KEYBOARD_SC_LEFT_ALT'),
((25, 4), (5, 7), 'HID_KEYBOARD_SC_SPACE'),
((5, 4), (5, 10), 'HID_KEYBOARD_SC_RIGHT_ALT'),
((5, 4), (5, 11), 'HID_KEYBOARD_SC_RIGHT_GUI'),
((5, 4), (5, 12), 'HID_KEYBOARD_SC_APPLICATION'),
((5, 4), (5, 13), 'HID_KEYBOARD_SC_RIGHT_CONTROL'),
(1, None, '0'),
((4, 4), (5, 14), 'HID_KEYBOARD_SC_LEFT_ARROW'),
((4, 4), (5, 15), 'HID_KEYBOARD_SC_DOWN_ARROW'),
((4, 4), (5, 16), 'HID_KEYBOARD_SC_RIGHT_ARROW')]
]
# Just leave this here as-is.
alt_layouts = {}
-
What was the error?
(Attachment Link)
Ah, yes, thank you. Now I understand. I think this can be fixed.
-
I don't envy you having to code consistency and limit checks within the config file as well as crosschecking to the firmware it's based on - it's probably more complicated than the actual load function! Necessary when a simple typo can break everything though, it can happen to anyone even if they have read and understood everything.
I added the safety checks today... and found several non-compliant board configs in the default install *facepalm*
-
3.0.0 beta 3 release: https://github.com/dhowland/EasyAVR/releases/tag/v3.00.00-beta.3
It's working pretty well now and I'm using it for my own keyboards.
There seems to be a problem with wx crashing python on Windows 10. Haven't found a way to reproduce it yet, it's random.
-
Just flashed a v3beta3 on my keyboard as well and it's working as intended.
On a related note: What template should I import for a 11*11 matrix?
Keep up the good work.
-
Just flashed a v3beta3 on my keyboard as well and it's working as intended.
On a related note: What template should I import for a 11*11 matrix?
Keep up the good work.
Template sizes are listed in this file: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/templates/__init__.py
There is no build that can handle an 11*11 matrix.
-
There is no build that can handle an 11*11 matrix.
Any chance to support it in the future?
-
There is no build that can handle an 11*11 matrix.
Any chance to support it in the future?
It is in the capabilities of the firmware, but it is a very unusual size. Costar is pretty strange at 8x18. Is there actually a keyboard that has 11 rows to scan?
-
Is there actually a keyboard that has 11 rows to scan?
Yes (https://geekhack.org/index.php?topic=92962.0).
-
Can't believe the weekend is over and I still haven't managed to have a play with this :'(
-
Is there actually a keyboard that has 11 rows to scan?
Yes (https://geekhack.org/index.php?topic=92962.0).
I created a "bigsquare" branch and added a new target size called "SQUARE" which is 12x12. Added a new build target for ATmega32U4_16MHz_SQUARE.
I made some test builds:
Windows exe: https://www.dropbox.com/s/2rd0x3swziu75xn/easykeymap_bigsquare_windows_3_00_00.zip?dl=0
Python source package: https://www.dropbox.com/s/6s78uqmg855lcur/easykeymap-bigsquare-3.0.0.tar.gz?dl=0
-
Can't believe the weekend is over and I still haven't managed to have a play with this :'(
You have plenty of time. The main purpose of the rewrite was to replace the awful code that I had out there. A Github account is like a programmer's public calling card. I want my name associated with good code. That goal has been achieved, so I can rest now.
-
Added a new build target for ATmega32U4_16MHz_SQUARE.
Much obliged my good sir. I'll be testing as soon as possible.
-
Added a new build target for ATmega32U4_16MHz_SQUARE.
Much obliged my good sir. I'll be testing as soon as possible.
cool. If it works send the config, I'll add it to the source.
-
3.0.0 beta 3 release: https://github.com/dhowland/EasyAVR/releases/tag/v3.00.00-beta.3
Very cool! Seems to be working on my Mac (OS 10.13.4). Thanks for the updates.
-
3.0.0 beta 3 release: https://github.com/dhowland/EasyAVR/releases/tag/v3.00.00-beta.3
Very cool! Seems to be working on my Mac (OS 10.13.4). Thanks for the updates.
Glad it works for you. I don't own a Mac and therefore have no way to test it, or even know how to install it.
-
If it works send the config, I'll add it to the source.
I'm honored.
I've tested the square template and it works like a charm.
So here's the code for the GH80-3000
More
gh80-3000.py
"""
Keyboard definition for the GH80-3000 custom keyboard.
Auto-generated from C:/Users/andre/Desktop/keyboard-layout.json
"""
#
# READ THIS
#
# This file contains a description of the various parameters that
# must be defined in order to completely describe the new keyboard.
# This file must be correct for the firmware to work, however if
# if is incorrect reprogramming the board won't cause any damage.
#
# This tool that created this file did not have all the information
# needed to make a perfect config. Check over all the data for
# correctness. Definitely make sure to fix the matix rows/columns in
# keyboard_definition, which are almost certainly wrong.
#
# This file uses two helper functions to make the configuration
# easier. For more complicated hardware, it may be necessary to
# set the parameters by hand. Look at other configs, such as
# boards/sigma.py, for examples if you want to try it.
#
# The first decision you have to make is to choose a hardware
# build. A handwire board using a Teensy2.0 will probably want
# ATmega32U4_16MHz_TKL or ATmega32U4_16MHz_SIXTY. The sizes are
# defined in the templates/__init__.py file of the keymapper.
# Leave the rest of the imports like they are here.
import easykeymap.templates.ATmega32U4_16MHz_SQUARE as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config, make_led_config
# The name of the board in the "New" dialog
description = "GH80-3000"
# Unique string to identify THIS exact hardware layout. If you change
# this file after saving layouts in the GUI, bump the unique_id to
# prevent corrupted builds.
unique_id = "GH80_3000_001"
# The name of the .cfg file the system will try to find for altered
# layout options. See the configs subdir of the keymapper.
cfg_name = "gh80_3000"
# Hand-wired boards usually use Teensy controllers. Set this to
# True to make sure that the bootloader works.
teensy = False
# If your board has an exposed switch for going into the bootloader,
# you can set this to True and the system won't prompt you to add a
# BOOT key to your layout.
hw_boot_key = False
# These two parameters define the size of the keyboard in the display.
# Must be whole numbers in units of quarter key lengths. A TKL
# usually is 6 rows high with a 1/2 key length gutter under the Fn row.
# Therefore int(6.5*4). Apply the same logic the width. Remember
# we are talking visual width, not number of columns.
display_height = 26
display_width = 90
# The number of rows and columns in the matrix. In a hand-wired board
# each of these will correspond to a single pin.
num_rows = 11
num_cols = 11
# Keyboards work by scanning a matrix to check each key. The scan
# works by setting an active row/column (strobing) and then reading
# the status of every switch that crosses it (sensing).
# strobe_cols tells the firmware which direction you have your diodes
# installed. If diodes go from column to row, then strobe_cols must
# be False. If diodes go from row to column, then strobe_cols must be
# True.
strobe_cols = False
# strobe_low tells the firmware if a row/column should be activated
# by pulling the pin high or low. Hand-wired boards will almost always
# use strobe_low = True
strobe_low = True
# The matrix_hardware, matrix_strobe, matrix_sense parameters tell
# the firmware how to initialize the ports, what pins must be set
# for each row/column, and what order to strobe/sense. These are
# complicated and are explained fully elsewhere. It is easiest to
# configure the matrix by using the make_matrix_config function as
# shown below. Just customize 'rows' and 'cols' for your project.
matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
strobe_cols=strobe_cols,
strobe_low=strobe_low,
rows=[F4, F1, F0, F5, F6, F7, D4, D5, D3, D2, D0],
cols=[C7, C6, B4, D7, B3, B2, B0, E6, B1, D1, D6],
device=firmware.device
)
# The num_leds, num_ind, led_hardware, backlighting, num_bl_enab,
# and bl_modes parameters tell the firmware how to operate the LEDs
# for indicators (for example, Caps Lock) and for backlighting. In
# order to fine-tune the configs, these may have to be defined manually
# but it is easiest to use make_led_config.
# LED_DRIVER_PULLUP is used when the pin is connected to the anode of
# the LED and the cathode is connected to ground.
# LED_DRIVER_PULLDOWN is used when the pin is connected to the cathode
# of the LED and the anode is connected to the power supply.
# Hand-wired boards will usually want to use LED_DRIVER_PULLDOWN.
# If there are no backlights, just leave the list empty (ie. just []).
num_leds, num_ind, led_hardware, backlighting, num_bl_enab, bl_modes = make_led_config(
led_pins = [B5, B6, B7],
led_dir=LED_DRIVER_PULLDOWN,
backlight_pins = [],
backlight_dir=LED_DRIVER_PULLDOWN
)
# Define the default assignments of the indicator LEDs. The length
# of this list must equal the length of led_pins. For each LED, the
# first string is the description of the key shown in the GUI. The
# second string is the default function assigned to that LED. LED
# functions must be strings as defined in led_assignments of gui.py.
# Common choices are 'Num Lock', 'Caps Lock', 'Scroll Lock', 'Win Lock',
# 'Fn Active', 'Recording', 'Backlight', and 'Unassigned'.
led_definition = (('LED 1', 'Num Lock'), ('LED 2', 'Caps Lock'), ('LED 3', 'Scroll Lock'))
# Define your layout. This is a list of rows. Each row is a list
# of keys. Each key is a tuple of three items. First item is a tuple
# defining the width,height of the key. If it is just a number, it
# will be a space instead of a key. All units are in quarter key lengths,
# so a standard key would be (4,4). Second item is a tuple defining the
# row,column in the matrix for that key. Third item is the default scancode
# for that key, from scancodes.py. If a row is a number instead of a list,
# it will just make a vertical spacer.
# ((key width, key height), (matrix row, matrix column), 'default mapping')
keyboard_definition = [[((4, 4), (0, 0), 'HID_KEYBOARD_SC_ESCAPE'),
(4, None, '0'),
((4, 4), (0, 1), 'HID_KEYBOARD_SC_F1'),
((4, 4), (0, 2), 'HID_KEYBOARD_SC_F2'),
((4, 4), (0, 3), 'HID_KEYBOARD_SC_F3'),
((4, 4), (3, 0), 'HID_KEYBOARD_SC_F4'),
(2, None, '0'),
((4, 4), (3, 1), 'HID_KEYBOARD_SC_F5'),
((4, 4), (3, 2), 'HID_KEYBOARD_SC_F6'),
((4, 4), (3, 3), 'HID_KEYBOARD_SC_F7'),
((4, 4), (3, 6), 'HID_KEYBOARD_SC_F8'),
(2, None, '0'),
((4, 4), (3, 7), 'HID_KEYBOARD_SC_F9'),
((4, 4), (3, 8), 'HID_KEYBOARD_SC_F10'),
((4, 4), (3, 9), 'HID_KEYBOARD_SC_F11'),
((4, 4), (3, 10), 'HID_KEYBOARD_SC_F12'),
(1, None, '0'),
((4, 4), (0, 4), 'HID_KEYBOARD_SC_PRINT_SCREEN'),
((4, 4), (0, 5), 'HID_KEYBOARD_SC_SCROLL_LOCK'),
((4, 4), (0, 6), 'HID_KEYBOARD_SC_PAUSE')],
2,
[((4, 4), (1, 0), 'HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE'),
((4, 4), (1, 1), 'HID_KEYBOARD_SC_1_AND_EXCLAMATION'),
((4, 4), (1, 2), 'HID_KEYBOARD_SC_2_AND_AT'),
((4, 4), (1, 3), 'HID_KEYBOARD_SC_3_AND_HASHMARK'),
((4, 4), (4, 0), 'HID_KEYBOARD_SC_4_AND_DOLLAR'),
((4, 4), (4, 1), 'HID_KEYBOARD_SC_5_AND_PERCENTAGE'),
((4, 4), (4, 2), 'HID_KEYBOARD_SC_6_AND_CARET'),
((4, 4), (4, 3), 'HID_KEYBOARD_SC_7_AND_AND_AMPERSAND'),
((4, 4), (4, 4), 'HID_KEYBOARD_SC_8_AND_ASTERISK'),
((4, 4), (4, 5), 'HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS'),
((4, 4), (4, 6), 'HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS'),
((4, 4), (4, 7), 'HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE'),
((4, 4), (4, 8), 'HID_KEYBOARD_SC_EQUAL_AND_PLUS'),
((4, 4), (4, 9), 'HID_KEYBOARD_SC_BACKSPACE'),
((4, 4), (4, 10), 'HID_KEYBOARD_SC_BACKSPACE'),
(1, None, '0'),
((4, 4), (1, 4), 'HID_KEYBOARD_SC_INSERT'),
((4, 4), (1, 5), 'HID_KEYBOARD_SC_HOME'),
((4, 4), (1, 6), 'HID_KEYBOARD_SC_PAGE_UP'),
(1, None, '0'),
((4, 4), (1, 7), 'HID_KEYBOARD_SC_NUM_LOCK'),
((4, 4), (1, 8), 'HID_KEYBOARD_SC_KEYPAD_SLASH'),
((4, 4), (1, 9), 'HID_KEYBOARD_SC_KEYPAD_ASTERISK'),
((4, 4), (1, 10), 'HID_KEYBOARD_SC_KEYPAD_MINUS')],
[((6, 4), (2, 0), 'HID_KEYBOARD_SC_TAB'),
((4, 4), (2, 1), 'HID_KEYBOARD_SC_Q'),
((4, 4), (2, 2), 'HID_KEYBOARD_SC_W'),
((4, 4), (2, 3), 'HID_KEYBOARD_SC_E'),
((4, 4), (5, 0), 'HID_KEYBOARD_SC_R'),
((4, 4), (5, 1), 'HID_KEYBOARD_SC_T'),
((4, 4), (5, 2), 'HID_KEYBOARD_SC_Y'),
((4, 4), (5, 3), 'HID_KEYBOARD_SC_U'),
((4, 4), (5, 5), 'HID_KEYBOARD_SC_I'),
((4, 4), (5, 6), 'HID_KEYBOARD_SC_O'),
((4, 4), (5, 7), 'HID_KEYBOARD_SC_P'),
((4, 4), (5, 8), 'HID_KEYBOARD_SC_OPENING_BRACKET_AND_OPENING_BRACE'),
((4, 4), (5, 9), 'HID_KEYBOARD_SC_CLOSING_BRACKET_AND_CLOSING_BRACE'),
((6, 4), (5, 10), 'HID_KEYBOARD_SC_BACKSLASH_AND_PIPE'),
(1, None, '0'),
((4, 4), (2, 4), 'HID_KEYBOARD_SC_DELETE'),
((4, 4), (2, 5), 'HID_KEYBOARD_SC_END'),
((4, 4), (2, 6), 'HID_KEYBOARD_SC_PAGE_DOWN'),
(1, None, '0'),
((4, 4), (2, 7), 'HID_KEYBOARD_SC_KEYPAD_7_AND_HOME'),
((4, 4), (2, 8), 'HID_KEYBOARD_SC_KEYPAD_8_AND_UP_ARROW'),
((4, 4), (2, 9), 'HID_KEYBOARD_SC_KEYPAD_9_AND_PAGE_UP'),
((4, 4), (2, 10), 'HID_KEYBOARD_SC_KEYPAD_PLUS')],
[((7, 4), (8, 0), 'HID_KEYBOARD_SC_CAPS_LOCK'),
((4, 4), (8, 1), 'HID_KEYBOARD_SC_A'),
((4, 4), (8, 2), 'HID_KEYBOARD_SC_S'),
((4, 4), (8, 3), 'HID_KEYBOARD_SC_D'),
((4, 4), (6, 0), 'HID_KEYBOARD_SC_F'),
((4, 4), (6, 1), 'HID_KEYBOARD_SC_G'),
((4, 4), (6, 2), 'HID_KEYBOARD_SC_H'),
((4, 4), (6, 3), 'HID_KEYBOARD_SC_J'),
((4, 4), (6, 6), 'HID_KEYBOARD_SC_K'),
((4, 4), (6, 7), 'HID_KEYBOARD_SC_L'),
((4, 4), (6, 8), 'HID_KEYBOARD_SC_SEMICOLON_AND_COLON'),
((4, 4), (6, 9), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE'),
((9, 4), (6, 10), 'HID_KEYBOARD_SC_ENTER'),
(14, None, '0'),
((4, 4), (8, 7), 'HID_KEYBOARD_SC_KEYPAD_4_AND_LEFT_ARROW'),
((4, 4), (8, 8), 'HID_KEYBOARD_SC_KEYPAD_5'),
((4, 4), (8, 9), 'HID_KEYBOARD_SC_KEYPAD_6_AND_RIGHT_ARROW'),
((4, 4), (8, 10), 'HID_KEYBOARD_SC_KEYPAD_PLUS')],
[((5, 4), (9, 0), 'HID_KEYBOARD_SC_LEFT_SHIFT'),
((4, 4), (9, 1), 'HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE'),
((4, 4), (9, 2), 'HID_KEYBOARD_SC_Z'),
((4, 4), (9, 3), 'HID_KEYBOARD_SC_X'),
((4, 4), (7, 0), 'HID_KEYBOARD_SC_C'),
((4, 4), (7, 1), 'HID_KEYBOARD_SC_V'),
((4, 4), (7, 2), 'HID_KEYBOARD_SC_B'),
((4, 4), (7, 3), 'HID_KEYBOARD_SC_N'),
((4, 4), (7, 5), 'HID_KEYBOARD_SC_M'),
((4, 4), (7, 6), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
((4, 4), (7, 7), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
((4, 4), (7, 8), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK'),
((7, 4), (7, 9), 'HID_KEYBOARD_SC_RIGHT_SHIFT'),
((4, 4), (7, 10), 'SCANCODE_FN0'),
(5, None, '0'),
((4, 4), (9, 6), 'HID_KEYBOARD_SC_UP_ARROW'),
(5, None, '0'),
((4, 4), (9, 7), 'HID_KEYBOARD_SC_KEYPAD_1_AND_END'),
((4, 4), (9, 8), 'HID_KEYBOARD_SC_KEYPAD_2_AND_DOWN_ARROW'),
((4, 4), (9, 9), 'HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN'),
((4, 4), (9, 10), 'HID_KEYBOARD_SC_KEYPAD_ENTER')],
[((6, 4), (10, 0), 'HID_KEYBOARD_SC_LEFT_CONTROL'),
((4, 4), (10, 1), 'HID_KEYBOARD_SC_LEFT_GUI'),
((6, 4), (10, 2), 'HID_KEYBOARD_SC_LEFT_ALT'),
((4, 4), (10, 3), 'HID_KEYBOARD_SC_SPACE'),
((8, 4), (8, 4), 'HID_KEYBOARD_SC_SPACE'),
((4, 4), (8, 5), 'HID_KEYBOARD_SC_SPACE'),
((8, 4), (8, 6), 'HID_KEYBOARD_SC_SPACE'),
((4, 4), (6, 4), 'HID_KEYBOARD_SC_SPACE'),
((6, 4), (6, 5), 'HID_KEYBOARD_SC_RIGHT_ALT'),
((4, 4), (9, 4), 'HID_KEYBOARD_SC_APPLICATION'),
((6, 4), (9, 5), 'HID_KEYBOARD_SC_RIGHT_CONTROL'),
(1, None, '0'),
((4, 4), (10, 4), 'HID_KEYBOARD_SC_LEFT_ARROW'),
((4, 4), (10, 5), 'HID_KEYBOARD_SC_DOWN_ARROW'),
((4, 4), (10, 6), 'HID_KEYBOARD_SC_RIGHT_ARROW'),
(1, None, '0'),
((4, 4), (10, 7), 'HID_KEYBOARD_SC_KEYPAD_0_AND_INSERT'),
((4, 4), (10, 8), 'HID_KEYBOARD_SC_KEYPAD_0_AND_INSERT'),
((4, 4), (10, 9), 'HID_KEYBOARD_SC_KEYPAD_DOT_AND_DELETE'),
((4, 4), (10, 10), 'HID_KEYBOARD_SC_KEYPAD_ENTER')]]
# Just leave this here as-is.
alt_layouts = {}
# Just leave this here as-is.
KMAC_key = None
gh80-3000.cfg
[ANSI Winkey]
# 2u Backspace
MAKE_SPACER(2, 13, 0)
MAKE_KEY(2, 14, 8, 4)
# 2.25u Left Shift
MAKE_KEY(5, 0, 9, 4)
MAKE_SPACER(5, 1, 0)
# 2.75u Right Shift
MAKE_KEY(5, 12, 11, 4)
MAKE_SPACER(5, 13, 0)
#bottom row
MAKE_KEY(6, 0, 5, 4)
MAKE_KEY(6, 1, 5, 4)
MAKE_KEY(6, 2, 5, 4)
MAKE_SPACER(6, 3, 0)
MAKE_SPACER(6, 4, 0)
MAKE_KEY(6, 5, 25, 4)
MAKE_SPACER(6, 6, 0)
MAKE_KEY(6, 7, 5, 4)
MAKE_KEY(6, 8, 5, 4)
MAKE_KEY(6, 9, 5, 4)
MAKE_KEY(6, 10, 5, 4)
#numpad
MAKE_KEY(4, 17, 4, 8)
MAKE_SPACER(3, 22, 0)
MAKE_KEY(6, 19, 4, 8)
MAKE_SPACER(5, 20, 0)
MAKE_KEY(6, 16, 8, 4)
MAKE_SPACER(6, 17, 0)
[ANSI Winkeyless]
# 2u Backspace
MAKE_SPACER(2, 13, 0)
MAKE_KEY(2, 14, 8, 4)
# 2.25u Left Shift
MAKE_KEY(5, 0, 9, 4)
MAKE_SPACER(5, 1, 0)
# 2.75u Right Shift
MAKE_KEY(5, 12, 11, 4)
MAKE_SPACER(5, 13, 0)
#bottom row
MAKE_KEY(6, 0, 6, 4)
MAKE_SPACER(6, 1, 4)
MAKE_KEY(6, 2, 6, 4)
MAKE_SPACER(6, 3, 0)
MAKE_SPACER(6, 4, 0)
MAKE_KEY(6, 5, 28, 4)
MAKE_SPACER(6, 6, 0)
MAKE_SPACER(6, 7, 0)
MAKE_KEY(6, 8, 6, 4)
MAKE_SPACER(6, 9, 4)
MAKE_KEY(6, 10, 6, 4)
#numpad
MAKE_KEY(4, 17, 4, 8)
MAKE_SPACER(3, 22, 0)
MAKE_KEY(6, 19, 4, 8)
MAKE_SPACER(5, 20, 0)
MAKE_KEY(6, 16, 8, 4)
MAKE_SPACER(6, 17, 0)
[ISO Winkey]
# 2u Backspace
MAKE_SPACER(2, 13, 0)
MAKE_KEY(2, 14, 8, 4)
# 2.75u Right Shift
MAKE_KEY(5, 12, 11, 4)
MAKE_SPACER(5, 13, 0)
#bottom row
MAKE_KEY(6, 0, 5, 4)
MAKE_KEY(6, 1, 5, 4)
MAKE_KEY(6, 2, 5, 4)
MAKE_SPACER(6, 3, 0)
MAKE_SPACER(6, 4, 0)
MAKE_KEY(6, 5, 25, 4)
MAKE_SPACER(6, 6, 0)
MAKE_KEY(6, 7, 5, 4)
MAKE_KEY(6, 8, 5, 4)
MAKE_KEY(6, 9, 5, 4)
MAKE_KEY(6, 10, 5, 4)
#numpad
MAKE_KEY(4, 17, 4, 8)
MAKE_SPACER(3, 22, 0)
MAKE_KEY(6, 19, 4, 8)
MAKE_SPACER(5, 20, 0)
MAKE_KEY(6, 16, 8, 4)
MAKE_SPACER(6, 17, 0)
[ISO Winkeyless]
# 2u Backspace
MAKE_SPACER(2, 13, 0)
MAKE_KEY(2, 14, 8, 4)
# 2.75u Right Shift
MAKE_KEY(5, 12, 11, 4)
MAKE_SPACER(5, 13, 0)
#bottom row
MAKE_KEY(6, 0, 6, 4)
MAKE_SPACER(6, 1, 4)
MAKE_KEY(6, 2, 6, 4)
MAKE_SPACER(6, 3, 0)
MAKE_SPACER(6, 4, 0)
MAKE_KEY(6, 5, 28, 4)
MAKE_SPACER(6, 6, 0)
MAKE_SPACER(6, 7, 0)
MAKE_KEY(6, 8, 6, 4)
MAKE_SPACER(6, 9, 4)
MAKE_KEY(6, 10, 6, 4)
#numpad
MAKE_KEY(4, 17, 4, 8)
MAKE_SPACER(3, 22, 0)
MAKE_KEY(6, 19, 4, 8)
MAKE_SPACER(5, 20, 0)
MAKE_KEY(6, 16, 8, 4)
MAKE_SPACER(6, 17, 0)
I haven't found a reliable way to make an ISO enter with the 1u key on its left in the config file. What am I missing?
Also a couple of suggestions, if you don't mind:
1) Gray out the edit and build menus, and disable their shortcuts, until a keymap has been created. It would be a much cleaner approach than a popup alert, in my opinion.
2) Add a tooltip when hovering a scancode to show the full constant name. It's handy when making custom boards.
3) Fix the Smart(ass)screen on Windows 10 (see attached image).
Thanks for making this tool, it's getting everyday better.
-
I'm sure the ISO thing can be done correctly. I'll look into it tonight. If I can get that damn Phantom to look right, I aught to be able to get this right.
1) Gray out the edit and build menus, and disable their shortcuts, until a keymap has been created. It would be a much cleaner approach than a popup alert, in my opinion.
That's a good idea. Not sure why that didn't occur to me. Probably because I was porting from the old app.
2) Add a tooltip when hovering a scancode to show the full constant name. It's handy when making custom boards.
In the picker or the layout editor? That's also good idea.
3) Fix the Smart(ass)screen on Windows 10 (see attached image).
I don't know how to do that. That doesn't show up for me. Perhaps it's because it is a downloaded executable? I'll have to google around for an answer.
-
I'm sure the ISO thing can be done correctly. I'll look into it tonight. If I can get that damn Phantom to look right, I aught to be able to get this right.
The Phantom has short ANSI Enter support, which makes easy to draw an ISO enter. I've the same situation on the XMMX and the Toad.
2) Add a tooltip when hovering a scancode to show the full constant name. It's handy when making custom boards.
In the picker or the layout editor?
Why not both?
It's mostly useful in the new popup screen in my opinion.
-
I'm sure the ISO thing can be done correctly. I'll look into it tonight. If I can get that damn Phantom to look right, I aught to be able to get this right.
The Phantom has short ANSI Enter support, which makes easy to draw an ISO enter. I've the same situation on the XMMX and the Toad.
Okay so in this case, the problem is that the main layout, aka <All Keys>, doesn't actually have all the keys. It's easily fixed, though. I'm using the graphic in the original link as a guide.
2) Add a tooltip when hovering a scancode to show the full constant name. It's handy when making custom boards.
In the picker or the layout editor?
Why not both?
It's mostly useful in the new popup screen in my opinion.
My original plan for the interface had tooltips all over everything. That didn't last long. They're good on menus and toolbar buttons, but on anything else they quickly become annoying because they often cover up something you're trying to read. When I'm making configs, I usually just open scancodes.py (https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/scancodes.py)
-
My original plan for the interface had tooltips all over everything. That didn't last long. They're good on menus and toolbar buttons, but on anything else they quickly become annoying because they often cover up something you're trying to read.
That makes sense. Perhaps you can have a Toggle tooltip feature in a View submenu.
-
or, instead of toggle (settable) long delay.
-
I added TalkingTree's suggestions. The tooltips on the scancode picker dialog is an awesome idea. I didn't end up adding them to the layout editor because they seemed redundant with just clicking for the property window.
making new release now.
-
https://github.com/dhowland/EasyAVR/releases/tag/v3.00.00-beta.4
-
Loving the new release. Thanks a lot for supporting the GH80-3000.
Regarding the SmartScreen this wall of text (https://blogs.msdn.microsoft.com/ie/2012/08/14/microsoft-smartscreen-extended-validation-ev-code-signing-certificates/) may (or not) be relevant to this software; it basically tells that digitally signing the sofware would speed up the removal process.
-
Hey metalliqaz, would you consider adding the code for the XMMX (https://geekhack.org/index.php?topic=93422.0) and the Toad (https://geekhack.org/index.php?topic=95130.0) to the source as well?
They share the same matrix so it's one config file for both.
Eventually, here it is. Thank you.
More
xmmx_toad.py
# Easy AVR USB Keyboard Firmware Keymapper
# Copyright (C) 2013-2016 David Howland
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
"""Keyboard definition for the XMMX keyboard"""
# The first decision you have to make is to choose a hardware
# layout. Assuming you are using a Teensy2.0, ATmega32U4_16MHz_TKL
# is probably the best hardware layout for you. ATmega32U4_16MHz_SIXTY
# might also work for you, though. The sizes are defined in the
# templates/__init__.py file of the keymapper.
# Leave the rest of the imports like they are here.
import easykeymap.templates.ATmega32U4_16MHz_TKL as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config
# The name of the board in the "New" dialog
description = "XMMX and Toad"
# Unique string to identify THIS exact hardware layout
unique_id = "xmmx_toad"
# The name of the .cfg file the system will try to find for altered
# layout options. See the configs subdir of the keymapper.
cfg_name = "xmmx_toad"
# Hand-wired boards usually use Teensy controllers. Set this to
# True to make sure that the bootloader works.
teensy = False
# If your board has an exposed switch for going into the bootloader,
# you can set this to True and the system won't prompt you to add a
# BOOT key to your layout.
hw_boot_key = False
# These two parameters define the size of the keyboard in the display.
# Must be whole numbers in units of quarter key lengths. A TKL
# usually is 6 rows high with a 1/2 key length gutter under the Fn row.
# Therefore int(6.5*4). Apply the same logic the width. Remember
# we are talking visual width, not number of columns.
display_height = int(6.5*4)
display_width = int(18.25*4)
# The number of rows and columns in the matrix. In a hand-wired board
# each of these will correspond to a single pin.
num_rows = 6
num_cols = 17
# Keyboards work by scanning a matrix to check each key. The scan
# works by setting an active row/column (strobing) and then reading
# the status of every switch that crosses it (sensing).
# strobe_cols tells the firmware which direction you have your diodes
# installed. If diodes go from column to row, then strobe_cols must
# be False. If diodes go from row to column, then strobe_cols must be
# True.
strobe_cols = False
# strobe_low tells the firmware if a row/column should be activated
# by pulling the pin high or low. Hand-wired boards will almost always
# use strobe_low = True
strobe_low = True
# The matrix_hardware, matrix_strobe, matrix_sense parameters tell
# the firmware how to initialize the ports, what pins must be set
# for each row/column, and what order to strobe/sense. These are
# complicated and are explained fully elsewhere. It is easiest to
# configure the matrix by using the make_matrix_config function as
# shown below. Just customize 'rows' and 'cols' for your project.
matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
strobe_cols=strobe_cols,
strobe_low=strobe_low,
rows=[B0, F6, F5, F4, F1, F0],
cols=[B3, B2, B1, E6, B7, C7, C6, D4, D6, D7, B4, D0, D1, F7, D2, D3, D5],
device=firmware.device
)
# The total number of LED outputs (indicators + backlights)
num_leds = 2
# The number of LED indicators (for example, caps lock)
num_ind = 2
# The number of backlight enable modes. This counts the number of
# options available for the BL_ENABLE key. Boards without backlights
# should use the minimum value of 2.
num_bl_enab = 2
# Define the default assignments of the indicator LEDs. The length
# of this list must equal num_ind. For each LED, the first string
# is the description of the key shown in the GUI. The second string
# is the default function assigned to that LED. LED functions must
# be strings as defined in led_assignments of gui.py. Common choices
# are 'Num Lock', 'Caps Lock', 'Scroll Lock', 'Win Lock', 'Fn Active',
# 'Recording', 'Backlight', and 'Unassigned'.
led_definition = [
('LED1', 'Caps Lock'),
('LED2', 'Scroll Lock')
]
# Definition of LED pins. (indicators and backlights) Indicators
# must come first and be in the same order as defined in led_definition.
# LED_DRIVER_PULLUP is used when the pin is connected to the anode of
# the LED and the cathode is connected to ground.
# LED_DRIVER_PULLDOWN is used when the pin is connected to the cathode
# of the LED and the anode is connected to the power supply.
led_hardware = [
# Port Pin Direction
( REF_PORTB, 6, LED_DRIVER_PULLDOWN ),
( REF_PORTB, 5, LED_DRIVER_PULLDOWN )
]
# True if the board supports backlight, otherwise False
backlighting = False
# This can be used to configure different backlighting zones. Explained
# in more detail elsewhere. Length of list must equal num_bl_enab.
# Length of each tuple must equal num_leds. Tuples use the same ordering
# as led_hardware. Almost everyone should just use an all-on/all-off
# configuration. That's a list of two tuples, one with all 1s for each
# LED, the other with all 0s for each LED.
bl_modes = [
( 0, 0 ),
( 1, 1 )
]
# Just leave this here as-is.
KMAC_key = None
# Define your layout. This is a list of rows. Each row is a list
# of keys. Each key is a tuple of three items. First item is a tuple
# defining the width,height of the key. If it is just a number, it
# will be a space instead of a key. All units are in quarter key lengths,
# so a standard key would be (4,4). Second item is a tuple defining the
# row,column in the matrix for that key. Third item is the default scancode
# for that key, from scancodes.py. If a row is a number instead of a list,
# it will just make a vertical spacer.
keyboard_definition = [
[((4, 4), (0, 0), 'HID_KEYBOARD_SC_ESCAPE'),
(4, None, '0'),
((4, 4), (0, 1), 'HID_KEYBOARD_SC_F1'),
((4, 4), (0, 2), 'HID_KEYBOARD_SC_F2'),
((4, 4), (0, 3), 'HID_KEYBOARD_SC_F3'),
((4, 4), (0, 4), 'HID_KEYBOARD_SC_F4'),
(2, None, '0'),
((4, 4), (0, 5), 'HID_KEYBOARD_SC_F5'),
((4, 4), (0, 6), 'HID_KEYBOARD_SC_F6'),
((4, 4), (0, 7), 'HID_KEYBOARD_SC_F7'),
((4, 4), (0, 8), 'HID_KEYBOARD_SC_F8'),
(2, None, '0'),
((4, 4), (0, 9), 'HID_KEYBOARD_SC_F9'),
((4, 4), (0, 10), 'HID_KEYBOARD_SC_F10'),
((4, 4), (0, 11), 'HID_KEYBOARD_SC_F11'),
((4, 4), (0, 12), 'HID_KEYBOARD_SC_F12'),
(1, None, '0'),
((4, 4), (0, 14), 'HID_KEYBOARD_SC_PRINT_SCREEN'),
((4, 4), (0, 15), 'HID_KEYBOARD_SC_SCROLL_LOCK'),
((4, 4), (0, 16), 'HID_KEYBOARD_SC_PAUSE')],
2,
[((4, 4), (1, 0), 'HID_KEYBOARD_SC_GRAVE_ACCENT_AND_TILDE'),
((4, 4), (1, 1), 'HID_KEYBOARD_SC_1_AND_EXCLAMATION'),
((4, 4), (1, 2), 'HID_KEYBOARD_SC_2_AND_AT'),
((4, 4), (1, 3), 'HID_KEYBOARD_SC_3_AND_HASHMARK'),
((4, 4), (1, 4), 'HID_KEYBOARD_SC_4_AND_DOLLAR'),
((4, 4), (1, 5), 'HID_KEYBOARD_SC_5_AND_PERCENTAGE'),
((4, 4), (1, 6), 'HID_KEYBOARD_SC_6_AND_CARET'),
((4, 4), (1, 7), 'HID_KEYBOARD_SC_7_AND_AND_AMPERSAND'),
((4, 4), (1, 8), 'HID_KEYBOARD_SC_8_AND_ASTERISK'),
((4, 4), (1, 9), 'HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS'),
((4, 4), (1, 10), 'HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS'),
((4, 4), (1, 11), 'HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE'),
((4, 4), (1, 12), 'HID_KEYBOARD_SC_EQUAL_AND_PLUS'),
((4, 4), (1, 13), 'HID_KEYBOARD_SC_BACKSPACE'),
((4, 4), (0, 13), 'HID_KEYBOARD_SC_BACKSPACE'),
(1, None, '0'),
((4, 4), (1, 14), 'HID_KEYBOARD_SC_INSERT'),
((4, 4), (1, 15), 'HID_KEYBOARD_SC_HOME'),
((4, 4), (1, 16), 'HID_KEYBOARD_SC_PAGE_UP')],
[((6, 4), (2, 0), 'HID_KEYBOARD_SC_TAB'),
((4, 4), (2, 1), 'HID_KEYBOARD_SC_Q'),
((4, 4), (2, 2), 'HID_KEYBOARD_SC_W'),
((4, 4), (2, 3), 'HID_KEYBOARD_SC_E'),
((4, 4), (2, 4), 'HID_KEYBOARD_SC_R'),
((4, 4), (2, 5), 'HID_KEYBOARD_SC_T'),
((4, 4), (2, 6), 'HID_KEYBOARD_SC_Y'),
((4, 4), (2, 7), 'HID_KEYBOARD_SC_U'),
((4, 4), (2, 8), 'HID_KEYBOARD_SC_I'),
((4, 4), (2, 9), 'HID_KEYBOARD_SC_O'),
((4, 4), (2, 10), 'HID_KEYBOARD_SC_P'),
((4, 4), (2, 11), 'HID_KEYBOARD_SC_OPENING_BRACKET_AND_OPENING_BRACE'),
((4, 4), (2, 12), 'HID_KEYBOARD_SC_CLOSING_BRACKET_AND_CLOSING_BRACE'),
((6, 4), (2, 13), 'HID_KEYBOARD_SC_BACKSLASH_AND_PIPE'),
(1, None, '0'),
((4, 4), (2, 14), 'HID_KEYBOARD_SC_DELETE'),
((4, 4), (2, 15), 'HID_KEYBOARD_SC_END'),
((4, 4), (2, 16), 'HID_KEYBOARD_SC_PAGE_DOWN')],
[((7, 4), (3, 0), 'HID_KEYBOARD_SC_CAPS_LOCK'),
((4, 4), (3, 1), 'HID_KEYBOARD_SC_A'),
((4, 4), (3, 2), 'HID_KEYBOARD_SC_S'),
((4, 4), (3, 3), 'HID_KEYBOARD_SC_D'),
((4, 4), (3, 4), 'HID_KEYBOARD_SC_F'),
((4, 4), (3, 5), 'HID_KEYBOARD_SC_G'),
((4, 4), (3, 6), 'HID_KEYBOARD_SC_H'),
((4, 4), (3, 7), 'HID_KEYBOARD_SC_J'),
((4, 4), (3, 8), 'HID_KEYBOARD_SC_K'),
((4, 4), (3, 9), 'HID_KEYBOARD_SC_L'),
((4, 4), (3, 10), 'HID_KEYBOARD_SC_SEMICOLON_AND_COLON'),
((4, 4), (3, 11), 'HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE'),
((4, 4), (3, 12), 'HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE'),
((5, 4), (3, 13), 'HID_KEYBOARD_SC_ENTER'),
(1, None, '0'),
((4, 4), (3, 14), '0'),
((4, 4), (3, 15), '0'),
((4, 4), (3, 16), '0')],
[((5, 4), (4, 0), 'HID_KEYBOARD_SC_LEFT_SHIFT'),
((4, 4), (4, 1), 'HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE'),
((4, 4), (4, 2), 'HID_KEYBOARD_SC_Z'),
((4, 4), (4, 3), 'HID_KEYBOARD_SC_X'),
((4, 4), (4, 4), 'HID_KEYBOARD_SC_C'),
((4, 4), (4, 5), 'HID_KEYBOARD_SC_V'),
((4, 4), (4, 6), 'HID_KEYBOARD_SC_B'),
((4, 4), (4, 7), 'HID_KEYBOARD_SC_N'),
((4, 4), (4, 8), 'HID_KEYBOARD_SC_M'),
((4, 4), (4, 9), 'HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN'),
((4, 4), (4, 10), 'HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN'),
((4, 4), (4, 11), 'HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK'),
((7, 4), (4, 12), 'HID_KEYBOARD_SC_RIGHT_SHIFT'),
((4, 4), (4, 13), 'SCANCODE_FN0'),
(1, None, '0'),
((4, 4), (4, 14), '0'),
((4, 4), (4, 15), 'HID_KEYBOARD_SC_UP_ARROW'),
((4, 4), (4, 16), '0')],
[((5, 4), (5, 0), 'HID_KEYBOARD_SC_LEFT_CONTROL'),
((5, 4), (5, 1), 'HID_KEYBOARD_SC_LEFT_GUI'),
((5, 4), (5, 2), 'HID_KEYBOARD_SC_LEFT_ALT'),
((25, 4), (5, 7), 'HID_KEYBOARD_SC_SPACE'),
((5, 4), (5, 10), 'HID_KEYBOARD_SC_RIGHT_ALT'),
((5, 4), (5, 11), 'HID_KEYBOARD_SC_RIGHT_GUI'),
((5, 4), (5, 12), 'HID_KEYBOARD_SC_APPLICATION'),
((5, 4), (5, 13), 'HID_KEYBOARD_SC_RIGHT_CONTROL'),
(1, None, '0'),
((4, 4), (5, 14), 'HID_KEYBOARD_SC_LEFT_ARROW'),
((4, 4), (5, 15), 'HID_KEYBOARD_SC_DOWN_ARROW'),
((4, 4), (5, 16), 'HID_KEYBOARD_SC_RIGHT_ARROW')]
]
# Just leave this here as-is.
alt_layouts = {}
xmmx_toad.cfg
[XMMX: ANSI Winkey]
# 2u Backspace
MAKE_KEY(2, 13, 8, 4)
MAKE_SPACER(2, 14, 0)
# 2.25u Left Shift
MAKE_KEY(5, 0, 9, 4)
MAKE_SPACER(5, 1, 0)
# 2.75u Right Shift
MAKE_KEY(5, 12, 11, 4)
MAKE_SPACER(5, 13, 0)
# 2.25u Enter
MAKE_KEY(4, 13, 9, 4)
MAKE_SPACER(4, 12, 0)
# remove extra navigation keys
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(4, 17, 0)
MAKE_SPACER(5, 15, 4)
MAKE_SPACER(5, 17, 0)
[XMMX: ANSI Winkeyless]
# 2u Backspace
MAKE_KEY(2, 13, 8, 4)
MAKE_SPACER(2, 14, 0)
# 2.25u Left Shift
MAKE_KEY(5, 0, 9, 4)
MAKE_SPACER(5, 1, 0)
# 2.75u Right Shift
MAKE_KEY(5, 12, 11, 4)
MAKE_SPACER(5, 13, 0)
# 2.25u Enter
MAKE_KEY(4, 13, 9, 4)
MAKE_SPACER(4, 12, 0)
# bottom row
MAKE_KEY(6, 0, 6, 4)
MAKE_SPACER(6, 1, 4)
MAKE_KEY(6, 2, 6, 4)
MAKE_KEY(6, 3, 28, 4)
MAKE_KEY(6, 4, 6, 4)
MAKE_SPACER(6, 5, 0)
MAKE_SPACER(6, 6, 4)
MAKE_KEY(6, 7, 6, 4)
# remove extra navigation keys
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(4, 17, 0)
MAKE_SPACER(5, 15, 4)
MAKE_SPACER(5, 17, 0)
[XMMX: ISO Winkey]
# 2u Backspace
MAKE_KEY(2, 13, 8, 4)
MAKE_SPACER(2, 14, 0)
# 2.75u Right Shift
MAKE_KEY(5, 12, 11, 4)
MAKE_SPACER(5, 13, 0)
# ISO Enter
MAKE_KEY(4, 13, 5, -8)
MAKE_SPACER(3, 13, 6)
# remove extra navigation keys
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(4, 17, 0)
MAKE_SPACER(5, 15, 4)
MAKE_SPACER(5, 17, 0)
[XMMX: ISO Winkeyless]
# 2u Backspace
MAKE_KEY(2, 13, 8, 4)
MAKE_SPACER(2, 14, 0)
# 2.75u Right Shift
MAKE_KEY(5, 12, 11, 4)
MAKE_SPACER(5, 13, 0)
# ISO Enter
MAKE_KEY(4, 13, 5, -8)
MAKE_SPACER(3, 13, 6)
# bottom row
MAKE_KEY(6, 0, 6, 4)
MAKE_SPACER(6, 1, 4)
MAKE_KEY(6, 2, 6, 4)
MAKE_KEY(6, 3, 28, 4)
MAKE_KEY(6, 4, 6, 4)
MAKE_SPACER(6, 5, 0)
MAKE_SPACER(6, 6, 4)
MAKE_KEY(6, 7, 6, 4)
# remove extra navigation keys
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(4, 17, 0)
MAKE_SPACER(5, 15, 4)
MAKE_SPACER(5, 17, 0)
#Toad: 70%
[Toad: <All Keys>]
# remove navigation keys
MAKE_SPACER(0, 17, 0)
MAKE_SPACER(0, 18, 0)
MAKE_SPACER(0, 19, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(2, 17, 0)
MAKE_SPACER(2, 18, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(3, 17, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(4, 17, 0)
MAKE_SPACER(5, 15, 0)
MAKE_SPACER(5, 16, 0)
MAKE_SPACER(5, 17, 0)
MAKE_SPACER(6, 9, 0)
MAKE_SPACER(6, 10, 0)
MAKE_SPACER(6, 11, 0)
[Toad: ANSI Winkey]
# 2u Backspace
MAKE_KEY(2, 13, 8, 4)
MAKE_SPACER(2, 14, 0)
# 2.25u Left Shift
MAKE_KEY(5, 0, 9, 4)
MAKE_SPACER(5, 1, 0)
# 2.75u Right Shift
MAKE_KEY(5, 12, 11, 4)
MAKE_SPACER(5, 13, 0)
# 2.25u Enter
MAKE_KEY(4, 13, 9, 4)
MAKE_SPACER(4, 12, 0)
# remove navigation keys
MAKE_SPACER(0, 17, 0)
MAKE_SPACER(0, 18, 0)
MAKE_SPACER(0, 19, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(2, 17, 0)
MAKE_SPACER(2, 18, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(3, 17, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(4, 17, 0)
MAKE_SPACER(5, 15, 0)
MAKE_SPACER(5, 16, 0)
MAKE_SPACER(5, 17, 0)
MAKE_SPACER(6, 9, 0)
MAKE_SPACER(6, 10, 0)
MAKE_SPACER(6, 11, 0)
[Toad: ANSI Winkeyless]
# 2u Backspace
MAKE_KEY(2, 13, 8, 4)
MAKE_SPACER(2, 14, 0)
# 2.25u Left Shift
MAKE_KEY(5, 0, 9, 4)
MAKE_SPACER(5, 1, 0)
# 2.75u Right Shift
MAKE_KEY(5, 12, 11, 4)
MAKE_SPACER(5, 13, 0)
# 2.25u Enter
MAKE_KEY(4, 13, 9, 4)
MAKE_SPACER(4, 12, 0)
# bottom row
MAKE_KEY(6, 0, 6, 4)
MAKE_SPACER(6, 1, 4)
MAKE_KEY(6, 2, 6, 4)
MAKE_KEY(6, 3, 28, 4)
MAKE_KEY(6, 4, 6, 4)
MAKE_SPACER(6, 5, 0)
MAKE_SPACER(6, 6, 4)
MAKE_KEY(6, 7, 6, 4)
# remove navigation keys
MAKE_SPACER(0, 17, 0)
MAKE_SPACER(0, 18, 0)
MAKE_SPACER(0, 19, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(2, 17, 0)
MAKE_SPACER(2, 18, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(3, 17, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(4, 17, 0)
MAKE_SPACER(5, 15, 0)
MAKE_SPACER(5, 16, 0)
MAKE_SPACER(5, 17, 0)
MAKE_SPACER(6, 9, 0)
MAKE_SPACER(6, 10, 0)
MAKE_SPACER(6, 11, 0)
[Toad: ISO Winkey]
# 2u Backspace
MAKE_KEY(2, 13, 8, 4)
MAKE_SPACER(2, 14, 0)
# 2.75u Right Shift
MAKE_KEY(5, 12, 11, 4)
MAKE_SPACER(5, 13, 0)
# ISO Enter
MAKE_KEY(4, 13, 5, -8)
MAKE_SPACER(3, 13, 6)
# remove navigation keys
MAKE_SPACER(0, 17, 0)
MAKE_SPACER(0, 18, 0)
MAKE_SPACER(0, 19, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(2, 17, 0)
MAKE_SPACER(2, 18, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(3, 17, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(4, 17, 0)
MAKE_SPACER(5, 15, 0)
MAKE_SPACER(5, 16, 0)
MAKE_SPACER(5, 17, 0)
MAKE_SPACER(6, 9, 0)
MAKE_SPACER(6, 10, 0)
MAKE_SPACER(6, 11, 0)
[Toad: ISO Winkeyless]
# 2u Backspace
MAKE_KEY(2, 13, 8, 4)
MAKE_SPACER(2, 14, 0)
# 2.75u Right Shift
MAKE_KEY(5, 12, 11, 4)
MAKE_SPACER(5, 13, 0)
# ISO Enter
MAKE_KEY(4, 13, 5, -8)
MAKE_SPACER(3, 13, 6)
# bottom row
MAKE_KEY(6, 0, 6, 4)
MAKE_SPACER(6, 1, 4)
MAKE_KEY(6, 2, 6, 4)
MAKE_KEY(6, 3, 28, 4)
MAKE_KEY(6, 4, 6, 4)
MAKE_SPACER(6, 5, 0)
MAKE_SPACER(6, 6, 4)
MAKE_KEY(6, 7, 6, 4)
# remove navigation keys
MAKE_SPACER(0, 17, 0)
MAKE_SPACER(0, 18, 0)
MAKE_SPACER(0, 19, 0)
MAKE_SPACER(2, 16, 0)
MAKE_SPACER(2, 17, 0)
MAKE_SPACER(2, 18, 0)
MAKE_SPACER(3, 15, 0)
MAKE_SPACER(3, 16, 0)
MAKE_SPACER(3, 17, 0)
MAKE_SPACER(4, 15, 0)
MAKE_SPACER(4, 16, 0)
MAKE_SPACER(4, 17, 0)
MAKE_SPACER(5, 15, 0)
MAKE_SPACER(5, 16, 0)
MAKE_SPACER(5, 17, 0)
MAKE_SPACER(6, 9, 0)
MAKE_SPACER(6, 10, 0)
MAKE_SPACER(6, 11, 0)
-
Hey metalliqaz, would you consider adding the code for the XMMX (https://geekhack.org/index.php?topic=93422.0) and the Toad (https://geekhack.org/index.php?topic=95130.0) to the source as well?
They share the same matrix so it's one config file for both.
Cool, will do.
Like with the GH80-3000, I cleaned up the file a little bit. In this one I updated the Unique ID to more closely match EasyAVR conventions. That means if you have saved layouts it will refuse to load them. :( you can just edit your .json files to update the unique_id property, though.
-
https://github.com/dhowland/EasyAVR/releases/tag/v3.00.01
-
Hey metalliqaz, would you consider adding the code for the XMMX (https://geekhack.org/index.php?topic=93422.0) and the Toad (https://geekhack.org/index.php?topic=95130.0) to the source as well?
They share the same matrix so it's one config file for both.
Cool, will do.
Amazing. Thank you so much.
Like with the GH80-3000, I cleaned up the file a little bit. In this one I updated the Unique ID to more closely match EasyAVR conventions. That means if you have saved layouts it will refuse to load them. :( you can just edit your .json files to update the unique_id property, though.
No problem, it won't take more than a couple of minutes to fix that.
-
Does anyone know if Easy AVR can be used on a keyboard that has an Atmel ATMega32a mcu? This board is the JJ50 from the kprepublic vendor. I've tried to use the 3.00.01 EasyAVR for windows zip and I've gotten as far as editing the scancodes in the jj50.py file that was generated but now when I restart easykeymap.exe I get some python errors like:
Traceback (most recent call last):
File "D:\Code\EasyAVR\keymapper\easykeymap\gui\easyapp.py", line 34, in OnInit
File "D:\Code\EasyAVR\keymapper\easykeymap\gui\mainframe.py", line 57, in __init__
File "D:\Code\EasyAVR\keymapper\easykeymap\gui\mainframe.py", line 61, in make_data
File "D:\Code\EasyAVR\keymapper\easykeymap\pkgdata.py", line 140, in import_boards
File "D:\Code\EasyAVR\keymapper\easykeymap\pkgdata.py", line 94, in import_user_boards
File "C:\Program Files (x86)\Python36-32\lib\importlib\__init__.py", line 126, in import_module
File "<frozen importlib._bootstrap>", line 978, in _gcd_import
File "<frozen importlib._bootstrap>", line 961, in _find_and_load
File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
File "D:\cygwin64\home\Terry\.EasyAVR\boards\jj50.py", line 101, in <module>
device=firmware.device
File "D:\Code\EasyAVR\keymapper\easykeymap\helper.py", line 50, in make_matrix_config
IndexError: list index out of range
Which I think means that it doesn't like my device=firmware.device line in jj50.py, but that was an autogenerated line and I really don't know what valid choices might be.
Please help a newbie EasyAVR user. Thanks in advance!
-
Does anyone know if Easy AVR can be used on a keyboard that has an Atmel ATMega32a mcu? This board is the JJ50 from the kprepublic vendor. I've tried to use the 3.00.01 EasyAVR for windows zip and I've gotten as far as editing the scancodes in the jj50.py file that was generated but now when I restart easykeymap.exe I get some python errors like:
Traceback (most recent call last):
File "D:\Code\EasyAVR\keymapper\easykeymap\gui\easyapp.py", line 34, in OnInit
File "D:\Code\EasyAVR\keymapper\easykeymap\gui\mainframe.py", line 57, in __init__
File "D:\Code\EasyAVR\keymapper\easykeymap\gui\mainframe.py", line 61, in make_data
File "D:\Code\EasyAVR\keymapper\easykeymap\pkgdata.py", line 140, in import_boards
File "D:\Code\EasyAVR\keymapper\easykeymap\pkgdata.py", line 94, in import_user_boards
File "C:\Program Files (x86)\Python36-32\lib\importlib\__init__.py", line 126, in import_module
File "<frozen importlib._bootstrap>", line 978, in _gcd_import
File "<frozen importlib._bootstrap>", line 961, in _find_and_load
File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
File "D:\cygwin64\home\Terry\.EasyAVR\boards\jj50.py", line 101, in <module>
device=firmware.device
File "D:\Code\EasyAVR\keymapper\easykeymap\helper.py", line 50, in make_matrix_config
IndexError: list index out of range
Which I think means that it doesn't like my device=firmware.device line in jj50.py, but that was an autogenerated line and I really don't know what valid choices might be.
Please help a newbie EasyAVR user. Thanks in advance!
That AVR is not supported. The firmware only supports USB AVR parts.
-
How can I remove / clear a scancode from a key? I'm sure it is possible but I really cannot find out how to do it except for opening the file in notepad and replacing the scancode with a "0".
-
Not 100% sure on the new version but on the old one the top item in the list of keycodes was blank.
-
Not 100% sure on the new version but on the old one the top item in the list of keycodes was blank.
Yes, indeed. But in the new version i can only seem either press the key i want or use a scancode picker (the virtual keyboard thingy). There's no drop down list as far as i can see. :)
-
Just had a look and you're right the dropdown's gone - I think you've found the first bug with the new version.
-
How can I remove / clear a scancode from a key? I'm sure it is possible but I really cannot find out how to do it except for opening the file in notepad and replacing the scancode with a "0".
heh. There is a point when you've been looking at something so long, you can't see it anymore.
-
So which would be better?
1) A blank button on the scancode picker?
2) Pressing delete to clear the assignment in the property editor?
Right now, when you press a key in the property editor, it takes it as an assignment request UNLESS it is a key that is used for keyboard navigation. So the arrows move the cursor, they don't assign arrow keys. Same with space bar and tab (select and activate, respectively). So, should I "steal" the delete key?
I lean towards (1) because (2) is non-obvious.
-
Definitely 1), not much room for it in the picker though!
-
Definitely 1), not much room for it in the picker though!
I know... I made it "mandatory" so I wanted to make it as small as possible. If anything else gets added it will have to spill on to another row and I won't like how it looks :mad: Oh well. There is an empty spot in the top right I can use for now.
-
I agree with 1)
Other more or less useful ideas:
* Have some "delete/clear scancode" function in the first window popping up when you press a key, before entering the scancode picker. (I kinda miss the option to keep the scancode picker open. I see the reason for the first window popping up though.)
* Right click with the mouse and an option there to clear it.
* Another way could be to have a small icon on each key, maybe an "x" that appears when you hold down a key or toggle something to enter some kind of "edit mode" like when you hold down on an icon on a iPhone
-
have a small icon on each key, maybe an "x"
I'm picturing something like this.
[attach=1]
-
There are many options. Unfortunately, the most influential factor for me is the limited amount of free time I have. A new button for "0" is by far the most expedient and therefore the most attractive. It is an open source project though, so anyone is welcome to build their own vision and show it off.
I'm currently revamping the USB code, which is a pretty big update. That's where my focus is for the time being. I'm sure it will take quite a while
-
There are many options. Unfortunately, the most influential factor for me is the limited amount of free time I have. A new button for "0" is by far the most expedient and therefore the most attractive. It is an open source project though, so anyone is welcome to build their own vision and show it off.
I'm currently revamping the USB code, which is a pretty big update. That's where my focus is for the time being. I'm sure it will take quite a while
Then so shall it be! I do not have the knowledge to build anything, i just wanted to share some different approaches and i did not have a clue to which was the least or most time consuming. Keep up the good work.
-
How do you set a key back to "0" once you set it on the new version?
-
How do you set a key back to "0" once you set it on the new version?
It's an oversight that shall be fixed in the next release
-
https://github.com/dhowland/EasyAVR/releases/tag/v3.00.02
-
Another release with a major overhaul. This times it's the USB code, so not as obvious as the GUI replacement, but hopefully a much more stable build:
https://github.com/dhowland/EasyAVR/releases/tag/3.01.01
Also JetBrains has granted me a sponsored open source license for all their IDEs, so that's pretty cool. PyCharm is powerful but I haven't got used to it yet.
-
Just played around a bit with the new release and it works flawlessly with NKRO as well.
I especially enjoy how all the DLLs were moved to the lib folder as it sometimes was hard to find the executable among that many files.
The USB options also are also nice.
Thanks for this release. Keep up the good work. :thumb:
-
Honestly I find the USB options to be unnecessary. I just leave them all on all the time. However I kept getting requests to disable one of the endpoints, probably for compatibility sake. The old method of changing them was terrible. This makes more sense.
-
By the way, I believe that now SCANCODE_FN0 does nothing as FN1 points to the layer 1.
-
That's not new. FN1 always pointed to Layer1. FN0 points to Layer0, aka default.
-
That's not new. FN1 always pointed to Layer1. FN0 points to Layer0, aka default.
Then it was me missing the point. Thanks for clarifying.
-
I am having customers ask about availability of the TechKeys OneKeyBoard - is there a process to request having that added?
-
One key? Not sure if the newest version has been tested with a single row/column, I know the old version didn't like it but adding a ghost row got round that.
I've just had a look at the tmk(?) source here (https://github.com/monkbroc/techkeys_onekey) but can't see the pins anywhere. Once they are known it should be simple to make the config, I doubt there's even diode direction to consider. Once there's a tested config metaliqaz is usually pretty quick to add it, or you can just tell people to copy the config to c:\users\USERNAME\.EasyAVR\boards and it will appear.
-
I am having customers ask about availability of the TechKeys OneKeyBoard - is there a process to request having that added?
The "official" process is to use the new Wizard, but I can just add the 1key. Should be simple enough. I will add it to a release as soon as we have it. We don't want to recommend users have to copy files around.
Out of town for a day, but I'll get it done soon.
If 1r/1c isn't supported, I'll fix it.
-
Man that code is strange. Is there any HW spec for the onekeyboard?
-
I am having customers ask about availability of the TechKeys OneKeyBoard - is there a process to request having that added?
Okay I added support. Can't test it. Hopefully it works.
https://github.com/dhowland/EasyAVR/releases/tag/v3.01.07
-
In preparation for the upcoming TMO50, it would be nice to have its layout included in Easy AVR.
https://geekhack.org/index.php?topic=94675.msg2578252#msg2578252
-
My phantom stopped working in NKRO mode since v3 firmware.. been using 2.05.06 before no problem.
Internally it seems to be still working (i.e. FN-keys), but no key presses arrive in windows.
-
My phantom stopped working in NKRO mode since v3 firmware.. been using 2.05.06 before no problem.
Internally it seems to be still working (i.e. FN-keys), but no key presses arrive in windows.
Sometimes Windows gets confused when the USB endpoints change. Try plugging it in to a different USB port. Or uninstall the device and replug.
-
In preparation for the upcoming TMO50, it would be nice to have its layout included in Easy AVR.
https://geekhack.org/index.php?topic=94675.msg2578252#msg2578252
The layout is one thing but what anyone needs to add a board is the pins used for the matrix and they don't seem to be detailed anywhere. I'd not tried the new wizard so took this opportunity - couldn't be simpler, good work metalliqaz :thumb:
(https://i.imgur.com/glCAfXx.png)
-
In preparation for the upcoming TMO50, it would be nice to have its layout included in Easy AVR.
https://geekhack.org/index.php?topic=94675.msg2578252#msg2578252 (https://geekhack.org/index.php?topic=94675.msg2578252#msg2578252)
The layout is one thing but what anyone needs to add a board is the pins used for the matrix and they don't seem to be detailed anywhere. I'd not tried the new wizard so took this opportunity - couldn't be simpler, good work metalliqaz :thumb:
Show Image
(https://i.imgur.com/glCAfXx.png)
:thumb:
-
Sometimes Windows gets confused when the USB endpoints change. Try plugging it in to a different USB port. Or uninstall the device and replug.
Thank you, using another usb-port did the trick.
-
Sometimes Windows gets confused when the USB endpoints change. Try plugging it in to a different USB port. Or uninstall the device and replug.
Thank you, using another usb-port did the trick.
It shouldn't happen again. I don't see another big USB change this this one any time in the future.
-
did this thread get split? I got notification of activity but I see none.
-
That would be me being stupid again - too many versions of my custom board config in too many places, tried editing a broken one and couldn't work out why it was invalid even after changing it back. No-one in their right mind will handwrite a config file now there's a wizard so who cares what the cryptic error messages mean :)
Sorry for the disruption!
-
I saw some stuff about this program working for the Kmac Mini, is that correct? I just got one but I'm struggling with programming it and am looking for some help. So far I'm using the Kmac program (from their website) to create a hexfile and then flash that with QMK Toolbox. However, I can't change caps to control and I'm not able to program volume control either :(
-
I saw some stuff about this program working for the Kmac Mini, is that correct?
It's not in the list of supported boards but it's possible, assuming it uses an ATMega32u4 controller chip. If you're lucky it could share it's pin layout with the Kmac TKL boards so try flashing the firmware for one of them - at worst the pins won't match so you'll have a non or partially-working board, but no permanent damage will be done.
Do you have a multimeter or continuity tester? These will be needed to work out the pins, assuming it doesn't work above.
-
If I remember correctly, most of the KMAC boards have almost the same hardware config.
KMAC mini can be added as long as someone with hardware is willing to test.
Sorry for not responding, I was out of the country on business and then very sick after returning home.
-
If I remember correctly, most of the KMAC boards have almost the same hardware config.
KMAC mini can be added as long as someone with hardware is willing to test.
Sorry for not responding, I was out of the country on business and then very sick after returning home.
O no worries, I’m out of the country as well. Also found out that it’s the Revo kmini so might have to use other software to program it.
Sent from my iPhone using Tapatalk
-
version 3.01 does not work. after building the firmware, flashing it, the keyboard does not output anything.
I am using version 2.05, it is working fine. However do I go to default layer on version 2?
-
version 3.01 does not work. after building the firmware, flashing it, the keyboard does not output anything.
I am using version 2.05, it is working fine. However do I go to default layer on version 2?
This is a known issue with Windows. When the HID endpoints of a USB composite device change, Windows gets confused and the keyboard stops working. There are two solutions. First is to remove the device and let it reinstall after re-plugging it in. Windows 7 it's in "Devices and Printers", Windows 10 it's in "Bluetooth and other device settings".
The second option is to just move it to a different USB port.
-
I have a TechKeys SixKeyBoard that I've been experimenting with programming using EasyAVR which has been working perfectly except I can't seem to get the LEDs I installed to work in backlight mode. They seem to work ok in indicator mode, if for example I assign one of them to "USB Normal" it lights up as expected, but for whatever reason I can't seem to get the backlight mode to work.
I tried assigning "BL Enable" and "BL Dimmer" to some keys and cycling them, but alas still no backlight.
If anyone's got any suggestions on where I might be going wrong I'd really appreciate it, thanks!
-
@metalliqaz
Could you do me a solid and add my new keyboard to the program?
https://github.com/qmk/qmk_firmware/tree/master/keyboards/tokyo60
I really need to learn the QMK language. I've been programming with AHK for a good two and a half years now so I do have some experience. Are there any good tutorials out there for getting started?
I imagine there's a VS Code language extension for it. I'll have to take a look.
Here's a glimpse at my build :)
(https://i.imgur.com/zIwvbIO.jpg)
-
I have a TechKeys SixKeyBoard that I've been experimenting with programming using EasyAVR which has been working perfectly except I can't seem to get the LEDs I installed to work in backlight mode. They seem to work ok in indicator mode, if for example I assign one of them to "USB Normal" it lights up as expected, but for whatever reason I can't seem to get the backlight mode to work.
I tried assigning "BL Enable" and "BL Dimmer" to some keys and cycling them, but alas still no backlight.
If anyone's got any suggestions on where I might be going wrong I'd really appreciate it, thanks!
That's very strange. Backlight mode and indicator mode use the same underlying code so if one works both should work. I'll check the config to see if anything pops out.
-
@metalliqaz
Could you do me a solid and add my new keyboard to the program?
https://github.com/qmk/qmk_firmware/tree/master/keyboards/tokyo60
I really need to learn the QMK language. I've been programming with AHK for a good two and a half years now so I do have some experience. Are there any good tutorials out there for getting started?
I imagine there's a VS Code language extension for it. I'll have to take a look.
Here's a glimpse at my build :)
Show Image
(https://i.imgur.com/zIwvbIO.jpg)
Beautiful. I'm going to try and make a tutorial video where I record myself adding support for this board. Should be useful for others in the future.
-
That's very strange. Backlight mode and indicator mode use the same underlying code so if one works both should work. I'll check the config to see if anything pops out.
Thanks, sorry I should of added for the sake of clarity that I'm using release v3.01.09 of EasyAVR for Windows downloaded from Github and I have Atmel Flip 3.4.7 installed. Running W7 x64.
I also just tried EasyAVR v3.01.07 - same result.
Unfortunately I don't think I've got another board that is supported by EasyAVR that I can use as a cross-check.
-
@metalliqaz
Could you do me a solid and add my new keyboard to the program?
https://github.com/qmk/qmk_firmware/tree/master/keyboards/tokyo60
I really need to learn the QMK language. I've been programming with AHK for a good two and a half years now so I do have some experience. Are there any good tutorials out there for getting started?
I imagine there's a VS Code language extension for it. I'll have to take a look.
Here's a glimpse at my build :)
Show Image
(https://i.imgur.com/zIwvbIO.jpg)
Beautiful. I'm going to try and make a tutorial video where I record myself adding support for this board. Should be useful for others in the future.
Great =)
Anyway you could add the Tokyo60 to the app for now? I'd greatly appreciate it. Having ALT between the Windows and Spacebar is really no bueno.
-
@metalliqaz
Could you do me a solid and add my new keyboard to the program?
https://github.com/qmk/qmk_firmware/tree/master/keyboards/tokyo60
I really need to learn the QMK language. I've been programming with AHK for a good two and a half years now so I do have some experience. Are there any good tutorials out there for getting started?
I imagine there's a VS Code language extension for it. I'll have to take a look.
Here's a glimpse at my build :)
Show Image
(https://i.imgur.com/zIwvbIO.jpg)
Beautiful. I'm going to try and make a tutorial video where I record myself adding support for this board. Should be useful for others in the future.
Great =)
Anyway you could add the Tokyo60 to the app for now? I'd greatly appreciate it. Having ALT between the Windows and Spacebar is really no bueno.
The file has been added in Github.
-
@metalliqaz
Could you do me a solid and add my new keyboard to the program?
https://github.com/qmk/qmk_firmware/tree/master/keyboards/tokyo60
I really need to learn the QMK language. I've been programming with AHK for a good two and a half years now so I do have some experience. Are there any good tutorials out there for getting started?
I imagine there's a VS Code language extension for it. I'll have to take a look.
Here's a glimpse at my build :)
Show Image
(https://i.imgur.com/zIwvbIO.jpg)
Beautiful. I'm going to try and make a tutorial video where I record myself adding support for this board. Should be useful for others in the future.
Great =)
Anyway you could add the Tokyo60 to the app for now? I'd greatly appreciate it. Having ALT between the Windows and Spacebar is really no bueno.
The file has been added in Github.
<3 Thanks dude. When I have the energy, I'll look into helping out where I can.
-
@metalliqaz
Could you do me a solid and add my new keyboard to the program?
https://github.com/qmk/qmk_firmware/tree/master/keyboards/tokyo60
I really need to learn the QMK language. I've been programming with AHK for a good two and a half years now so I do have some experience. Are there any good tutorials out there for getting started?
I imagine there's a VS Code language extension for it. I'll have to take a look.
Here's a glimpse at my build :)
Show Image
(https://i.imgur.com/zIwvbIO.jpg)
Beautiful. I'm going to try and make a tutorial video where I record myself adding support for this board. Should be useful for others in the future.
Great =)
Anyway you could add the Tokyo60 to the app for now? I'd greatly appreciate it. Having ALT between the Windows and Spacebar is really no bueno.
The file has been added in Github.
I've been super busy and haven't had a chance to respond again.
Can you do me a huge favor and compile the latest source code for Windows? I still haven't figured out how to do that yet :X
The latest release says August 7 I believe.
-
@metalliqaz
Could you do me a solid and add my new keyboard to the program?
https://github.com/qmk/qmk_firmware/tree/master/keyboards/tokyo60
I really need to learn the QMK language. I've been programming with AHK for a good two and a half years now so I do have some experience. Are there any good tutorials out there for getting started?
I imagine there's a VS Code language extension for it. I'll have to take a look.
Here's a glimpse at my build :)
Show Image
(https://i.imgur.com/zIwvbIO.jpg)
Beautiful. I'm going to try and make a tutorial video where I record myself adding support for this board. Should be useful for others in the future.
Great =)
Anyway you could add the Tokyo60 to the app for now? I'd greatly appreciate it. Having ALT between the Windows and Spacebar is really no bueno.
The file has been added in Github.
I've been super busy and haven't had a chance to respond again.
Can you do me a huge favor and compile the latest source code for Windows? I still haven't figured out how to do that yet :X
The latest release says August 7 I believe.
https://github.com/dhowland/EasyAVR/releases/tag/3.01.10
-
@metalliqaz
Could you do me a solid and add my new keyboard to the program?
https://github.com/qmk/qmk_firmware/tree/master/keyboards/tokyo60
I really need to learn the QMK language. I've been programming with AHK for a good two and a half years now so I do have some experience. Are there any good tutorials out there for getting started?
I imagine there's a VS Code language extension for it. I'll have to take a look.
Here's a glimpse at my build :)
Show Image
(https://i.imgur.com/zIwvbIO.jpg)
Beautiful. I'm going to try and make a tutorial video where I record myself adding support for this board. Should be useful for others in the future.
Great =)
Anyway you could add the Tokyo60 to the app for now? I'd greatly appreciate it. Having ALT between the Windows and Spacebar is really no bueno.
The file has been added in Github.
I've been super busy and haven't had a chance to respond again.
Can you do me a huge favor and compile the latest source code for Windows? I still haven't figured out how to do that yet :X
The latest release says August 7 I believe.
https://github.com/dhowland/EasyAVR/releases/tag/3.01.10
My man. Truly appreciate it!
-
I'm trying to add a katakana/hiragana key to my keymap (HID_KEYBOARD_SC_INTERNATIONAL2 as listed here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/scancodes.py) but I can't get it to show up in the scancode picker by making it a default key of the keyboard I've ported, and if I put it in the json manually or create a new keyboard with it in the default keymap, the software crashes when it would become visible (if it's on layer 1 it crashes when I view layer 1. Is there anything I can do about this? Or am I stupid and does the hashmark on the page mean it isn't implemented at all?
-
I'm trying to add a katakana/hiragana key to my keymap (HID_KEYBOARD_SC_INTERNATIONAL2 as listed here: https://github.com/dhowland/EasyAVR/blob/master/keymapper/easykeymap/scancodes.py) but I can't get it to show up in the scancode picker by making it a default key of the keyboard I've ported, and if I put it in the json manually or create a new keyboard with it in the default keymap, the software crashes when it would become visible (if it's on layer 1 it crashes when I view layer 1. Is there anything I can do about this? Or am I stupid and does the hashmark on the page mean it isn't implemented at all?
That kind of change requires a change to the C code of the firmware, as well as the Python Keymapper. There have been a few efforts at incorporating international features into the firmware, but I am in the USA and I have no experience with other languages. I can create a test build if you are willing to do the testing.
-
Welcome to geekhack Dorothy :)
Yes the hashmark means it's commented out. It's not deleted implying it will never work though...
I've just tried un-commenting it in Linux, after that the code can be loaded and the hex compiles and flashes, but the katakana key doesn't send a code so there is something more that needs doing.
-
Prototype:
[attach=1]
-
@metalliqaz
Could you do me a solid and add my new keyboard to the program?
https://github.com/qmk/qmk_firmware/tree/master/keyboards/tokyo60
I really need to learn the QMK language. I've been programming with AHK for a good two and a half years now so I do have some experience. Are there any good tutorials out there for getting started?
I imagine there's a VS Code language extension for it. I'll have to take a look.
Here's a glimpse at my build :)
Show Image
(https://i.imgur.com/zIwvbIO.jpg)
Beautiful. I'm going to try and make a tutorial video where I record myself adding support for this board. Should be useful for others in the future.
Great =)
Anyway you could add the Tokyo60 to the app for now? I'd greatly appreciate it. Having ALT between the Windows and Spacebar is really no bueno.
The file has been added in Github.
I've been super busy and haven't had a chance to respond again.
Can you do me a huge favor and compile the latest source code for Windows? I still haven't figured out how to do that yet :X
The latest release says August 7 I believe.
https://github.com/dhowland/EasyAVR/releases/tag/3.01.10
Hello again. I attempted to flash my Tokyo60 with firmware built by EasyAVR with your recent release. Sadly, the keyboard completely stops working until I reflash it with stock firmware.
Any clue as to why this would happen?
-
Hello again. I attempted to flash my Tokyo60 with firmware built by EasyAVR with your recent release. Sadly, the keyboard completely stops working until I reflash it with stock firmware.
Any clue as to why this would happen?
'Completely stops working' as in doesn't register as a USB device or just doesn't output letters etc when you press keys? Assuming the latter my first thought is the diode direction could be wrong so try shorting the switch pin that's not connected to the diode to the other side of the diode to bypass the diode.
-
Hello again. I attempted to flash my Tokyo60 with firmware built by EasyAVR with your recent release. Sadly, the keyboard completely stops working until I reflash it with stock firmware.
Any clue as to why this would happen?
'Completely stops working' as in doesn't register as a USB device or just doesn't output letters etc when you press keys? Assuming the latter my first thought is the diode direction could be wrong so try shorting the switch pin that's not connected to the diode to the other side of the diode to bypass the diode.
Basically, no keys register. Nada.
The USB notification pops up on Windows, and that's as far as I go. Nothing actuates.
-
Basically, no keys register. Nada.
The USB notification pops up on Windows, and that's as far as I go. Nothing actuates.
Did you try bypassing a diode? If the orange and red are the traces on the PCB you need to short the two yellow contacts with something conductive.[attach=1]
-
Just found this and figured on trying it out for a layout I'd like to create but get this error when loading the Json file directly downloaded from KLE.
[attachimg=1]
Has something changed on KLE's end ? Even loading the default 104 ANSI Json gets the same error. Maybe I'm just too new and am screwing it up ?
This is the Layout:
[attachimg=2]
-
I just downloaded the latest windows release (https://github.com/dhowland/EasyAVR/releases/download/3.01.10/easykeymap_windows_3_01_10.zip) and imported the default ANSI 104 JSON without any problem, I chose Teensy 2.0++ as the controller as it's too many keys for the other options.
You might try making your fonts standard size but that won't help if the default won't load...
Edit: Could also be that you have some keys with legends it can't handle?
I've attached a config that looks right to me, just put it in C:\users\[USERNAME]\.EasyAVR\Boards
You'll have to fix the pins and maybe a couple of the keycodes but it's close :)
-
Just found this and figured on trying it out for a layout I'd like to create but get this error when loading the Json file directly downloaded from KLE.
(Attachment Link)
Has something changed on KLE's end ? Even loading the default 104 ANSI Json gets the same error. Maybe I'm just too new and am screwing it up ?
This is the Layout:
(Attachment Link)
EasyAVR does NOT load .json files directly from KLE. EasyAVR loads EasyAVR save files. KLE does NOT have enough information in it to program a keyboard, it ONLY has layout information.
READ THE DOCS !!!
To make a custom layout, you have to create a layout using the wizard. One step in that process is loading a KLE file.
READ THE DOCS !!!
READ THE DOCS (https://dhowland.github.io/EasyAVR/build/html/newboard.html)
-
Hi!
Just tested new version of easy avr. I maked layout for gh60 satan. I set "Led mode configuration" for capslock to backlight mode. Now if i turn of backlights, all other keys turn off but capskey is still on. Is possible to fix that? Last version what i used was 2.05.07 and in it this worked fine..
-
Hi!
Just tested new version of easy avr. I maked layout for gh60 satan. I set "Led mode configuration" for capslock to backlight mode. Now if i turn of backlights, all other keys turn off but capskey is still on. Is possible to fix that? Last version what i used was 2.05.07 and in it this worked fine..
I finally had some time to look through the changes to the code. The changes were made at the request of someone else who has a Satan board. I don't own one, so I can't see for myself what is correct. I'm worried there's some variation in the way they are constructed.
When the caps lock is set to caps lock, does it work correctly?
-
Hi!
Just tested new version of easy avr. I maked layout for gh60 satan. I set "Led mode configuration" for capslock to backlight mode. Now if i turn of backlights, all other keys turn off but capskey is still on. Is possible to fix that? Last version what i used was 2.05.07 and in it this worked fine..
I finally had some time to look through the changes to the code. The changes were made at the request of someone else who has a Satan board. I don't own one, so I can't see for myself what is correct. I'm worried there's some variation in the way they are constructed.
When the caps lock is set to caps lock, does it work correctly?
Yes, when it's in indicator mode it works like should. Off mode works too. Only if its in backlight mode,it keeps on while other leds are toggled off..
E: or did u mean if caps key is mapped for capslock?
-
Hey there, having a bit of trouble getting the LEDs working on my sixkeyboard with EasyAVR...in the LEDs tab under "LED Mode Configuration" I have all six keys set to the "Backlight" option. I then mapped "SCANCODE_BL_ENABLE" to a key so that I could enable/disable the LEDs however after building and reprogramming, no matter how many times I press the key mapped with "SCANCODE_BL_ENABLE" the LEDs don't turn on.
Is there something I'm missing? Any help would be greatly appreciated!!
-
is there any hack or trick to make gh60 satan works with stepped caps lock in easy avr? maybe I didn't read enough, and at the github doc it stated that easy avr doesn't support stepped caps lock, but, any chance someone had done this?
-
is there any hack or trick to make gh60 satan works with stepped caps lock in easy avr? maybe I didn't read enough, and at the github doc it stated that easy avr doesn't support stepped caps lock, but, any chance someone had done this?
Stepped caps lock is just the shape of the keycap, it doesn't required firmware support. Are you talking about locking caps?
-
is there any hack or trick to make gh60 satan works with stepped caps lock in easy avr? maybe I didn't read enough, and at the github doc it stated that easy avr doesn't support stepped caps lock, but, any chance someone had done this?
Stepped caps lock is just the shape of the keycap, it doesn't required firmware support. Are you talking about locking caps?
no, if i put my switch on normal caps lock, it's detected, i can program it. but if i put my switch on stepped caps lock, it's not detected as key.
-
is there any hack or trick to make gh60 satan works with stepped caps lock in easy avr? maybe I didn't read enough, and at the github doc it stated that easy avr doesn't support stepped caps lock, but, any chance someone had done this?
Stepped caps lock is just the shape of the keycap, it doesn't required firmware support. Are you talking about locking caps?
no, if i put my switch on normal caps lock, it's detected, i can program it. but if i put my switch on stepped caps lock, it's not detected as key.
I'll take a look
Sent from my Pixel 3 XL using Tapatalk
-
That's bizarre, on the standard GH60 stepped and standard are in the same position in the matrix and there's not much space to do anything different.
-
is there any hack or trick to make gh60 satan works with stepped caps lock in easy avr? maybe I didn't read enough, and at the github doc it stated that easy avr doesn't support stepped caps lock, but, any chance someone had done this?
Stepped caps lock is just the shape of the keycap, it doesn't required firmware support. Are you talking about locking caps?
no, if i put my switch on normal caps lock, it's detected, i can program it. but if i put my switch on stepped caps lock, it's not detected as key.
I'll take a look
Sent from my Pixel 3 XL using Tapatalk
thank you. i'll try to check if anything wrong with my pcb
-
possibly a short? look at the pins for the caps lock, would be easy to make a short. solder carefully. (pic is of the 1up GH60 Satan)
[attach=1]
-
Yes they should be the same location in the matrix. Check for an electrical problem
Sent from my Pixel 3 XL using Tapatalk
-
On the official GH60 the two middle pins are shorted and the diode is connected to the outer two, doesn't mean it's the same on the Satan but should be to be friendly as they are very close.
Completely unrelated but I just tried to make a new 8x13 board in the wizzard and chose a 60% JSON with 3 extra rows (reverse engineering the matrix of an unknown 'GH60') and it used TKL not COSTAR, so wouldn't load. Unlikely anyone's going to be crazy enough to handwire a board like this but if you're bored it is a bug to squash :)
-
thanks all, it works now. it looks like the stepped caps lock shorted. made a jumper and now it works flawlessly. really a fool of mine.
thank you
-
thanks all, it works now. it looks like the stepped caps lock shorted. made a jumper and now it works flawlessly. really a fool of mine.
thank you
Great. Glad you got it figured out.
-
Hi,
Just wondering if anyone could shed some light on this.
I'm using EasyAVR + a Pegasus Hoof controller from Bpiphany on a Filco Majestouch2 TKL.
I love it, the solution is great, I am really happy! But I have lost one bit of functionality.
Previously I was able to repeat multiple keys, so for example hold down h + a and get hahahahahahahahahahahahahaha.
Post mod I get ahhhhhhhhhhhhhhhhhhhhhhh.
I'm thinking the issue might well be a limitation on the firmware, so this would be a feature request to EasyAVR?
Or maybe it is a limitation on the controller itself? Any thoughts?
FWIW this feature isn't just used to spam hahahaha at people! It can be used for gaming, for example some really neat optimisations in Starcraft and similar. There may be other use cases.
-
Hi,
Just wondering if anyone could shed some light on this.
I'm using EasyAVR + a Pegasus Hoof controller from Bpiphany on a Filco Majestouch2 TKL.
I love it, the solution is great, I am really happy! But I have lost one bit of functionality.
Previously I was able to repeat multiple keys, so for example hold down h + a and get hahahahahahahahahahahahahaha.
Post mod I get ahhhhhhhhhhhhhhhhhhhhhhh.
I'm thinking the issue might well be a limitation on the firmware, so this would be a feature request to EasyAVR?
Or maybe it is a limitation on the controller itself? Any thoughts?
FWIW this feature isn't just used to spam hahahaha at people! It can be used for gaming, for example some really neat optimisations in Starcraft and similar. There may be other use cases.
Okay so what you are describing a complicated issue. The keyboard's only job is to tell the PC that the user is pressing the 'a' key and the 'h' key. What the PC does with that information is up to the PC. On every PC I've ever used, holding down both keys will produce "ahhhhhhhhhhhhhhhhhhh".
Now, EasyAVR follows USB HID keyboard standards. Therefore, "ahhhhhhhhhhh" is correct. I don't know what the Filco is doing by default, but I assume it is using a standard 6KRO USB keyboard interface.
So, you can try two things:
1) if your PC is somehow configured to produce "ahahahahahahah" when you hold down both keys on a normal keyboard, then you can configure EasyAVR to work as a basic USB keyboard. (turn off NKRO in the USB features tab)
2) You can configure EasyAVR to rapidly toggle the 'a' and 'h' keys (or any keys you want) by turning on "rapid fire" for those keys. Then, instead of telling your PC that you're holding the keys, it will continually re-press the keys.
-
Okay so what you are describing a complicated issue. The keyboard's only job is to tell the PC that the user is pressing the 'a' key and the 'h' key. What the PC does with that information is up to the PC. On every PC I've ever used, holding down both keys will produce "ahhhhhhhhhhhhhhhhhhh".
Now, EasyAVR follows USB HID keyboard standards. Therefore, "ahhhhhhhhhhh" is correct. I don't know what the Filco is doing by default, but I assume it is using a standard 6KRO USB keyboard interface.
So, you can try two things:
1) if your PC is somehow configured to produce "ahahahahahahah" when you hold down both keys on a normal keyboard, then you can configure EasyAVR to work as a basic USB keyboard. (turn off NKRO in the USB features tab)
2) You can configure EasyAVR to rapidly toggle the 'a' and 'h' keys (or any keys you want) by turning on "rapid fire" for those keys. Then, instead of telling your PC that you're holding the keys, it will continually re-press the keys.
That's really interesting cheers.
Given what you've said I just dropped my previous controller back into the Filco and retested.
I don't think I have any special configuration but holding any two keys I can easily get multi-key repeat, ie
hahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahah
vyvyvyvyvyvyvyvyvyvyvyvyvyvyvyvyvyvyvy
emememememememememememememememememememem
even with shift in the equation
%@%@%@%@%@%@%@%@%@%@%@%@%@%@%@%@%@%@%@
looks like I can even do n-key multi-repeat :p
qwetryqwetryqwetryqwetryqwetryqwetryqwetryqwetryqwetryqwetryqwetryqwetryqwetryqwetryqwetryqwetryqwetryqwetryqwetryqwetry.
.......
Just dropped back to the Pegasus + EasyAVR
And retesting there it almost looks like I am able to do multi-repeat, but it is just very very hard to acheive :
So for example on maybe the 3rd attempt I can get : enenenenenenenenenenenenenenen (I'm on Colemak these keys are adjactent so easier to hit together).
ahhhhhhhhhhhhhhhhh
haaaaaaaaaaaaa
haaaaaaaaaaa
ahhhhhhhhhhhh
ahhhhhhhh
the ha variation seems next to impossible though, either because they are far apart and so difficult to hit precisely together, or some technical limitation.
Doing a 5 key repeat tho would be completely out of the question, at least in daily use. (I have no idea why you'd want to!)
Could this be something to do with debounce code or anything like that? There are algorithms that are in place to handles various nuances of keypresses I assume?
I would also say I'm not sure this ability to multi-key repeat is that rare, I know it's recommended on a channel I visit by a few users who don't own Filcos. And this technique in Starcraft requires it (about 1 min in) :
Tried disabling NKRO in the usb tab, no change it seems.
On (2), this made me wonder if it's what my Filco (and others) are doing out of the box, I tested with the key repeat setting in Windows, switching that from slow to fast and vice versa shows a clear difference, which to me says key repeat is not being managed in the controller and it is being done OS side.
-
The reason it's so much harder to hit it correctly on EasyAVR is because EasyAVR uses a 1000Hz refresh rate and standard keyboards use 125Hz.
-
By refresh rate, is that Polling rate, ie this : https://mechanicalkeyboards.com/terms.php?t=Polling%20Rate
If so is it possible to lower it at all do you know? If it is indeed what's preventing multikey repeat (I could test) then I'd be happy to drop the rate in exchange for the extra functionality.
-
Notice that the web page claims that polling rate below 5 ms does not make sense since Cherry MX debounces in 5 ms. That is wrong. 5 ms polling rate will add 2.5 ms to the latency on average regardless of the switch debounce time. I.e. if you care about every millisecond then it makes sense to have shorter polling rate than 5 ms.
That being said, hardly anybody cares about 2.5 ms of added latency. You will lose much more because of long travel time of Cherry MX (pressing about 2 mm till actuation talkes a lot of miliseconds).
I just could not resist to comment on an obviously wrong info on the internet ... this time. Blame me :)
-
Personally I welcome pedantry.
FWIW I tried the rapid keys option in Easy AVR, with this I can get multikey repeat.
I didn't want to do every single key (not sure if there are any side-effects) so only the two keys I plan to use for the SC2 hotkeys (as in the video) are now set to rapid key, this essentially moves key repeat management into the controller firmware.
o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o :)
The multikey repeat thing (via firmware rapid fire) is interesting actually, so I can hold down one key for a bit, then a second and they still alternate :
oooooooooooooooooooo6ooooooo6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6
66666666666666666666666o666666o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o6o
Which I don't think is possible normally, even on keyboards that do multi-key repeat.
Essentially normally you have to press both keys at close to the same time to get it to alternate, but with rapid fire if you miss the timing a bit, say in the heat of a game, then it still works, which is actually slightly better. :)
So although we could argue the rapid keys option is a bit of a workaround for functionality that (for whatever reason) is not availble in EasyAVR/Pegasus combo, there are actually some extra benefits to using this workaround anyway.
Thanks for the awesome work on EasyAVR btw metalliqaz, it is really great, and being able to program a keyboard is so awesome. :thumb:
-
Chris' firmware has programs (stored in eeprom and interpreted by firmware) and one can upload whatever kind of rapid fire sequences one wants up to the frequency of USP polling rate. No clue about Easy AVR. I do not use it.
-
I didn't want to do every single key (not sure if there are any side-effects)
What I would do (assuming you have a spare layer) is copy the default layer to a new layer with these keys (and any others that may be helpful) set to rapid-fire and switch to that layer for gaming. You never know what a program is going to do with keypresses and this avoids any and all side effects plus it will give the Scroll Lock LED something to do :))
-
Hey, I'm facing an error I'm not so sure about the cause :
I've gone through the wizard to create a new board, edited the python script accordingly (see the hidden part of this post), and when I restart EasyAVR, an error pops up saying : Error loading keyboard definition 'nonmboard.py': (num_rows, num_cols) mudt fit in (5,15) for the SIXTY firmware.
What I can say, is that the srip was all mixed up of the number of rows, columns, and so, the keyboard_definition too. Which is why I corrected it, but.... Tough luck.
Do you know what's wrong.
NB : for my first edit of the script, I said there was 4 rows, 16 columns. I changed the number of columns to 17, and increase column number of som keys in keyboard_definition, I thought that maybe the the presence of a "column_spacer" may had to count as a column after all...
More
#
# READ THIS
#
# This file contains a description of the various parameters that
# must be defined in order to completely describe the new keyboard.
# This file must be correct for the firmware to work, however if
# if is incorrect reprogramming the board won't cause any damage.
#
# This tool that created this file did not have all the information
# needed to make a perfect config. Check over all the data for
# correctness. Definitely make sure to fix the matix rows/columns in
# keyboard_definition, which are almost certainly wrong.
#
# This file uses two helper functions to make the configuration
# easier. For more complicated hardware, it may be necessary to
# set the parameters by hand. Look at other configs, such as
# boards/sigma.py, for examples if you want to try it.
#
# The first decision you have to make is to choose a hardware
# build. A handwire board using a Teensy2.0 will probably want
# ATmega32U4_16MHz_TKL or ATmega32U4_16MHz_SIXTY. The sizes are
# defined in the templates/__init__.py file of the keymapper.
# Leave the rest of the imports like they are here.
import easykeymap.templates.ATmega32U4_16MHz_SIXTY as firmware
from easykeymap.ioports import *
from easykeymap.helper import make_matrix_config, make_led_config
# The name of the board in the "New" dialog
description = "NoNameBoard"
# Unique string to identify THIS exact hardware layout. If you change
# this file after saving layouts in the GUI, bump the unique_id to
# tell the tool that the old save files should not be used. (prevents
# corrupted builds)
unique_id = "NONMBOARD_001"
# The name of the .cfg file the system will try to find for altered
# layout options. See the configs subdir of the keymapper.
cfg_name = "nonmboard"
# Hand-wired boards usually use Teensy controllers. Set this to
# True to make sure that the bootloader works.
teensy = True
# If your board has an exposed switch for going into the bootloader,
# you can set this to True and the system won't prompt you to add a
# BOOT key to your layout.
hw_boot_key = True
# The number of rows and columns in the matrix. In a hand-wired board
# each of these will correspond to a single pin.
num_rows = 4
num_cols = 17
# Keyboards work by scanning a matrix to check each key. The scan
# works by setting an active row/column (strobing) and then reading
# the status of every switch that crosses it (sensing).
# strobe_cols tells the firmware which direction you have your diodes
# installed. If diodes go from column to row, then strobe_cols must
# be False. If diodes go from row to column, then strobe_cols must be
# True.
strobe_cols = False
# strobe_low tells the firmware if a row/column should be activated
# by pulling the pin high or low. Hand-wired boards will almost always
# use strobe_low = True
strobe_low = True
# The matrix_hardware, matrix_strobe, matrix_sense parameters tell
# the firmware how to initialize the ports, what pins must be set
# for each row/column, and what order to strobe/sense. These are
# complicated and are explained fully elsewhere. It is easiest to
# configure the matrix by using the make_matrix_config function as
# shown below. Just customize 'rows' and 'cols' for your project.
matrix_hardware, matrix_strobe, matrix_sense = make_matrix_config(
strobe_cols=strobe_cols,
strobe_low=strobe_low,
rows=[D3, C6, D7, B4],
cols=[B0, B1, B2, B3, B7, D0, D1, D2, B5, B6, F7, F6, F5, F4, F1, F0],
device=firmware.device
)
# The num_leds, num_ind, led_hardware, backlighting, num_bl_enab,
# and bl_modes parameters tell the firmware how to operate the LEDs
# for indicators (for example, Caps Lock) and for backlighting. In
# order to fine-tune the configs, these may have to be defined manually
# but it is easiest to use make_led_config.
# LED_DRIVER_PULLUP is used when the pin is connected to the anode of
# the LED and the cathode is connected to ground.
# LED_DRIVER_PULLDOWN is used when the pin is connected to the cathode
# of the LED and the anode is connected to the power supply.
# Hand-wired boards will usually want to use LED_DRIVER_PULLDOWN.
# If there are no backlights, just leave the list empty (ie. just []).
num_leds, num_ind, led_hardware, backlighting, num_bl_enab, bl_modes = make_led_config(
led_pins = [],
led_dir=LED_DRIVER_PULLDOWN,
backlight_pins = [],
backlight_dir=LED_DRIVER_PULLDOWN
)
# Define the default assignments of the indicator LEDs. The length
# of this list must equal the length of led_pins. For each LED, the
# first string is the description of the key shown in the GUI. The
# second string is the default function assigned to that LED. LED
# functions must be strings as defined in led_assignments of gui.py.
# Choices are 'Num Lock', 'Caps Lock', 'Scroll Lock', 'Compose', 'Kana',
# 'Win Lock', 'Fn1 Active', 'Fn2 Active', 'Fn3 Active', 'Fn4 Active',
# 'Fn5 Active', 'Fn6 Active', 'Fn7 Active', 'Fn8 Active', 'Fn9 Active',
# 'Any Fn Active', 'Recording', 'USB Init', 'USB Error', 'USB Suspend',
# 'USB Normal', 'Backlight', and 'Unassigned'.
led_definition = []
# Define your layout. This is a list of rows. Each row is a list
# of keys. Each key is a tuple of three items. First item is a tuple
# defining the width,height of the key. If it is just a number, it
# will be a space instead of a key. All units are in quarter key lengths,
# so a standard key would be (4,4). Second item is a tuple defining the
# row,column in the matrix for that key. Third item is the default scancode
# for that key, from scancodes.py. If a row is a number instead of a list,
# it will just make a vertical spacer.
# ((key width, key height), (matrix row, matrix column), 'default mapping')
keyboard_definition = [
[
((4, 4), (0, 0), '0'),
((4, 4), (0, 1), '0'),
((4, 4), (0, 2), '0'),
((4, 4), (0, 3), '0'),
((4, 4), (0, 4), '0'),
((4, 4), (0, 5), '0'),
(20, None, '0'),
((4, 4), (0, 11), '0'),
((4, 4), (0, 12), '0'),
((4, 4), (0, 13), '0'),
((4, 4), (0, 14), '0'),
((4, 4), (0, 15), '0'),
((4, 4), (0, 16), '0')
],
[
((4, 4), (1, 0), '0'),
((4, 4), (1, 1), '0'),
((4, 4), (1, 2), '0'),
((4, 4), (1, 3), '0'),
((4, 4), (1, 4), '0'),
((4, 4), (1, 5), '0'),
(20, None, '0'),
((4, 4), (1, 11), '0'),
((4, 4), (1, 12), '0'),
((4, 4), (1, 13), '0'),
((4, 4), (1, 14), '0'),
((4, 4), (1, 15), '0'),
((4, 4), (1, 16), '0')
],
[
((4, 4), (2, 0), '0'),
((4, 4), (2, 1), '0'),
((4, 4), (2, 2), '0'),
((4, 4), (2, 3), '0'),
((4, 4), (2, 4), '0'),
((4, 4), (2, 5), '0'),
(20, None, '0'),
((4, 4), (2, 11), '0'),
((4, 4), (2, 12), '0'),
((4, 4), (2, 13), '0'),
((4, 4), (2, 14), '0'),
((4, 4), (2, 15), '0'),
((4, 4), (2, 16), '0')
],
[
(16, None, '0'),
((4, 4), (3, 4), '0'),
((4, 4), (3, 5), '0'),
((4, 4), (3, 6), '0'),
((4, 4), (3, 7), '0'),
(4, None, '0'),
((4, 4), (3, 9), '0'),
((4, 4), (3, 10), '0'),
((4, 4), (3, 11), '0'),
((4, 4), (3, 12), '0'),
(16, None, '0')
]
]
# Just leave this here as-is.
KMAC_key = None
-
The Sixty sized firmware only supports 15 columns. You need a larger sized firmware. Try TKL
Sent from my Pixel 3 XL using Tapatalk
-
Well thanks :thumb:, and damn :mad: ! I was sure to have red all the comments in the script.... obviously not. In these cases, I'd love to shout at myself something like RTFM. Sorry about that, and thanks again.
-
4x17? Sounds like an interesting layout...
-
Well, this is in fact a 4x16 grid (but only 44 keys), the project has already been completed (with qmk via kbfirmware), never updated the thread though. To be honest, as a keyboard, it may be really nice and effective (concept), however it asks too many layers to learn, which can be learned far more easily with leds and labels on the caps, which I don't have (plus full split on the lap is...obvioiusly a bad idea). So, instead, I removed some caps, and currently use it as a hitbox for Mortal Kombat 9, which hitbox is far better than a console pad or a regular keyboard for this situation.
-
Hello and thank you for Easy AVR. I've been playing with it for a while now and I wonder if there is a way to build the .hex file just from a .json file, without using the GUI? I'm looking at the build_firmware method but it seems a little inconvenient for this purpose.
-
Hello everyone,
On the advice of Suicidal_orange, I'm posting here to try to figure out the mystery of the behaviour of my teensy++2 clone.
To sum up the whole thread (here https://geekhack.org/index.php?topic=102719.msg2835760#msg2835760), I try to repair my Cooler Master CM Storm (full size + macro key column) using the aforementioned board (photos visible on post #8 on the dedicated thread) and EasyAVR, but up till now all key press result in the sequence : ALT + WIN + SHIFT (right) + CTRL (right), the two last keys stay pressed. This behaviour was observed with AquaKeyTest.
The PYTHON file used for configuration of EasyAVR and the HEX file résulting are attached.
I'd really appreciate any lead as for now, I'm completly stuck.
-
Hello everyone,
On the advice of Suicidal_orange, I'm posting here to try to figure out the mystery of the behaviour of my teensy++2 clone.
To sum up the whole thread (here https://geekhack.org/index.php?topic=102719.msg2835760#msg2835760), I try to repair my Cooler Master CM Storm (full size + macro key column) using the aforementioned board (photos visible on post #8 on the dedicated thread) and EasyAVR, but up till now all key press result in the sequence : ALT + WIN + SHIFT (right) + CTRL (right), the two last keys stay pressed. This behaviour was observed with AquaKeyTest.
The PYTHON file used for configuration of EasyAVR and the HEX file résulting are attached.
I'd really appreciate any lead as for now, I'm completly stuck.
Hello and Bonjour!
I am very rusty when it comes to supporting this software. I have kids now and just don't have the time anymore to get real deep into development.
It sounds like your matrix is getting all screwed up during the build, but I don't see evidence of that in the .hex file you shared. The ACTIONS array is empty, so it shouldn't be triggering any automods. Perhaps it is screwing up the USB transmissions. Unfortunately I don't have much of an idea here.
I did a quick pass of your config file and it looks sound.
Perhaps you could try a partial implementation of your matrix in one of the other builds? Such as SQUARE or FULLSIZE? If those worked but the COSTAR size doesn't work, that would give us a clue.
Sorry I'm not more helpful.
-
I've tested the hex on a genuine Teensy 2.0++ and it works fine. The keys aren't connected in the matrix so it makes no sense for them to activate at the same time - it's almost like it's reading part of the bootloader rather than the stored keys so always finds the same codes, though I don't really know what goes on behind the scenes on these chips to know if that's possible.
-
I've tested the hex on a genuine Teensy 2.0++ and it works fine. The keys aren't connected in the matrix so it makes no sense for them to activate at the same time - it's almost like it's reading part of the bootloader rather than the stored keys so always finds the same codes, though I don't really know what goes on behind the scenes on these chips to know if that's possible.
I guess I should have read the linked thread to catch up. But if the hex works on a genuine Teensy and he's using a knockoff... that kinda answers the question doesn't it?
-
Thanks for the warm welcome :)
But if the hex works on a genuine Teensy and he's using a knockoff... that kinda answers the question doesn't it
That's what I feared for some times now, as suggested by suicuidal_orange first. But, correct me if I'm wrong, the tools that load the binary into the chip (arduino-1.8.10\hardware\tools\teensy.exe) is supposed to check the integrity once uploaded ? Is it possible to say "Ok" when it's not ?
Anyway, thanks for the lead, I'll check what's happen with a SQUARE or FULLSIZE !
it's almost like it's reading part of the bootloader rather than the stored keys so always finds the same codes
I really hate not understanding things, but your explanation makes perfect sense !
-
Here the result with "standard" builds found in Easy AVR\easykeymap_windows_3_01_10\builds :
AT90USB1286_8MHz_FULLSIZE.hex => led ON, message from Windows "USB Device not recognized", no key works
AT90USB1286_16MHz_COSTAR.hex => led OFF, no message, no key works
AT90USB1286_16MHz_FULLSIZE.hex => led OFF, no message, no key works
AT90USB1286_16MHz_JUMBO.hex => led OFF, no message, no key works
:(
-
One quick question : you said you check the HEX file I provided, can you just tell me how you did that ?
(was about to install Atmel Studio 7 to see if I can learn something about my knockoff but the installer weight 700 Mo :eek:)
-
It's just a text file. I know the layout of memory so I can check that data is in the right spot.
Sent from my Pixel 3 XL using Tapatalk
-
Hello, Just to let you know guys, the new board works fine with EasyAVR and the HEX file provided by Suicidal_orange :thumb:
Next step soon in the dedicated thread https://geekhack.org/index.php?topic=102719.0 (https://geekhack.org/index.php?topic=102719.0) :cool:
-
Hello, Just to let you know guys, the new board works fine with EasyAVR and the HEX file provided by Suicidal_orange :thumb:
Next step soon in the dedicated thread https://geekhack.org/index.php?topic=102719.0 (https://geekhack.org/index.php?topic=102719.0) :cool:
Nice!
-
Hello there.
I am writing from a handwired keyboard that uses the EasyAVR on a Teensy 2++.
However, I am trying to implement the SCANCODE_BOOT and it is not working. I googled it and found that somebody else had this problem in the past but it was not solved (https://github.com/dhowland/EasyAVR/issues/72). I am having the same issue. When the SCANCODE_BOOT is pressed the keyboard stops working but it does not appear at the Teensy Loader in order to reprogram it.
Has anyone encountered it before?
(sorry of this is the wrong thread)
-
Hello there.
I am writing from a handwired keyboard that uses the EasyAVR on a Teensy 2++.
However, I am trying to implement the SCANCODE_BOOT and it is not working. I googled it and found that somebody else had this problem in the past but it was not solved (https://github.com/dhowland/EasyAVR/issues/72). I am having the same issue. When the SCANCODE_BOOT is pressed the keyboard stops working but it does not appear at the Teensy Loader in order to reprogram it.
Has anyone encountered it before?
(sorry of this is the wrong thread)
This is the right thread.
It is a known issue with the Teensy++. With the previous user I double and triple checked the Teensy documentation and still could not find a reason for this issue. Of course I didn't have a Teensy++ board so I couldn't really try it for myself.
I'm willing to give it another shot if you are willing to load some test builds on your board.
I think this time I'll try and contact the Teensy people for suggestions.
-
Hello there.
I am writing from a handwired keyboard that uses the EasyAVR on a Teensy 2++.
However, I am trying to implement the SCANCODE_BOOT and it is not working. I googled it and found that somebody else had this problem in the past but it was not solved (https://github.com/dhowland/EasyAVR/issues/72). I am having the same issue. When the SCANCODE_BOOT is pressed the keyboard stops working but it does not appear at the Teensy Loader in order to reprogram it.
Has anyone encountered it before?
(sorry of this is the wrong thread)
This is the right thread.
It is a known issue with the Teensy++. With the previous user I double and triple checked the Teensy documentation and still could not find a reason for this issue. Of course I didn't have a Teensy++ board so I couldn't really try it for myself.
I'm willing to give it another shot if you are willing to load some test builds on your board.
I think this time I'll try and contact the Teensy people for suggestions.
Of course. Also, the wiring at the Teensy is done with dupont connectors, so I can disconnect it easily if you think it would help somehow.
-
Hello there.
I am writing from a handwired keyboard that uses the EasyAVR on a Teensy 2++.
However, I am trying to implement the SCANCODE_BOOT and it is not working. I googled it and found that somebody else had this problem in the past but it was not solved (https://github.com/dhowland/EasyAVR/issues/72). I am having the same issue. When the SCANCODE_BOOT is pressed the keyboard stops working but it does not appear at the Teensy Loader in order to reprogram it.
Has anyone encountered it before?
(sorry of this is the wrong thread)
This is the right thread.
It is a known issue with the Teensy++. With the previous user I double and triple checked the Teensy documentation and still could not find a reason for this issue. Of course I didn't have a Teensy++ board so I couldn't really try it for myself.
I'm willing to give it another shot if you are willing to load some test builds on your board.
I think this time I'll try and contact the Teensy people for suggestions.
Of course. Also, the wiring at the Teensy is done with dupont connectors, so I can disconnect it easily if you think it would help somehow.
Okay I'll take a look this weekend. Keep in mind I have kids so it might take a few days.
-
Hello there.
I am writing from a handwired keyboard that uses the EasyAVR on a Teensy 2++.
However, I am trying to implement the SCANCODE_BOOT and it is not working. I googled it and found that somebody else had this problem in the past but it was not solved (https://github.com/dhowland/EasyAVR/issues/72). I am having the same issue. When the SCANCODE_BOOT is pressed the keyboard stops working but it does not appear at the Teensy Loader in order to reprogram it.
Has anyone encountered it before?
(sorry of this is the wrong thread)
This is the right thread.
It is a known issue with the Teensy++. With the previous user I double and triple checked the Teensy documentation and still could not find a reason for this issue. Of course I didn't have a Teensy++ board so I couldn't really try it for myself.
I'm willing to give it another shot if you are willing to load some test builds on your board.
I think this time I'll try and contact the Teensy people for suggestions.
Of course. Also, the wiring at the Teensy is done with dupont connectors, so I can disconnect it easily if you think it would help somehow.
Okay I'll take a look this weekend. Keep in mind I have kids so it might take a few days.
No rush. Thanks for helping out.
-
Hello there.
I am writing from a handwired keyboard that uses the EasyAVR on a Teensy 2++.
However, I am trying to implement the SCANCODE_BOOT and it is not working. I googled it and found that somebody else had this problem in the past but it was not solved (https://github.com/dhowland/EasyAVR/issues/72). I am having the same issue. When the SCANCODE_BOOT is pressed the keyboard stops working but it does not appear at the Teensy Loader in order to reprogram it.
Has anyone encountered it before?
(sorry of this is the wrong thread)
This is the right thread.
It is a known issue with the Teensy++. With the previous user I double and triple checked the Teensy documentation and still could not find a reason for this issue. Of course I didn't have a Teensy++ board so I couldn't really try it for myself.
I'm willing to give it another shot if you are willing to load some test builds on your board.
I think this time I'll try and contact the Teensy people for suggestions.
Of course. Also, the wiring at the Teensy is done with dupont connectors, so I can disconnect it easily if you think it would help somehow.
Okay I'll take a look this weekend. Keep in mind I have kids so it might take a few days.
No rush. Thanks for helping out.
I just realized that the PM I sent you didn't actually include the build link. Oops!
Here is a test build: https://www.dropbox.com/s/bxda7wckoh926t9/teensyplusplus_test1.zip?dl=0
Hopefully you are using Windows.
-
Hello there.
I am writing from a handwired keyboard that uses the EasyAVR on a Teensy 2++.
However, I am trying to implement the SCANCODE_BOOT and it is not working. I googled it and found that somebody else had this problem in the past but it was not solved (https://github.com/dhowland/EasyAVR/issues/72). I am having the same issue. When the SCANCODE_BOOT is pressed the keyboard stops working but it does not appear at the Teensy Loader in order to reprogram it.
Has anyone encountered it before?
(sorry of this is the wrong thread)
This is the right thread.
It is a known issue with the Teensy++. With the previous user I double and triple checked the Teensy documentation and still could not find a reason for this issue. Of course I didn't have a Teensy++ board so I couldn't really try it for myself.
I'm willing to give it another shot if you are willing to load some test builds on your board.
I think this time I'll try and contact the Teensy people for suggestions.
Of course. Also, the wiring at the Teensy is done with dupont connectors, so I can disconnect it easily if you think it would help somehow.
Okay I'll take a look this weekend. Keep in mind I have kids so it might take a few days.
No rush. Thanks for helping out.
I just realized that the PM I sent you didn't actually include the build link. Oops!
Here is a test build: https://www.dropbox.com/s/bxda7wckoh926t9/teensyplusplus_test1.zip?dl=0
Hopefully you are using Windows.
Just saw this. I am using Linux. I have not opened the link, will do tomorrow. Is it a program to test the teensy? I could format a drive with windows in order to test it. Is 7 ok?
-
Just saw this. I am using Linux. I have not opened the link, will do tomorrow. Is it a program to test the teensy? I could format a drive with windows in order to test it. Is 7 ok?
I had only built the windows package.
here's the multiplatform one: https://www.dropbox.com/s/ajbv6ji3mjcwxqn/teensyplusplus_test1.tar.gz?dl=0
-
Just saw this. I am using Linux. I have not opened the link, will do tomorrow. Is it a program to test the teensy? I could format a drive with windows in order to test it. Is 7 ok?
I had only built the windows package.
here's the multiplatform one: https://www.dropbox.com/s/ajbv6ji3mjcwxqn/teensyplusplus_test1.tar.gz?dl=0
I tried it with the same *.py that I had created and just used this version to build it again. I had the same result.
Should I create a new keyboard from the start?
-
Just saw this. I am using Linux. I have not opened the link, will do tomorrow. Is it a program to test the teensy? I could format a drive with windows in order to test it. Is 7 ok?
I had only built the windows package.
here's the multiplatform one: https://www.dropbox.com/s/ajbv6ji3mjcwxqn/teensyplusplus_test1.tar.gz?dl=0
I tried it with the same *.py that I had created and just used this version to build it again. I had the same result.
Should I create a new keyboard from the start?
That should have worked. Man, this is killing me. I literally copied the code from the Teensy website.
Let me ask you this. When you hit the BOOT key, and the keyboard stops working, does it disconnect from USB or does it remain detected as a keyboard?
-
Just saw this. I am using Linux. I have not opened the link, will do tomorrow. Is it a program to test the teensy? I could format a drive with windows in order to test it. Is 7 ok?
I had only built the windows package.
here's the multiplatform one: https://www.dropbox.com/s/ajbv6ji3mjcwxqn/teensyplusplus_test1.tar.gz?dl=0
I tried it with the same *.py that I had created and just used this version to build it again. I had the same result.
Should I create a new keyboard from the start?
Two more builds to try:
https://www.dropbox.com/s/k1f93ss6d2n04yv/teensyplusplus_test2.tar.gz?dl=0
https://www.dropbox.com/s/u5x****w09q6rou/teensyplusplus_test3.tar.gz?dl=0
-
Just saw this. I am using Linux. I have not opened the link, will do tomorrow. Is it a program to test the teensy? I could format a drive with windows in order to test it. Is 7 ok?
I had only built the windows package.
here's the multiplatform one: https://www.dropbox.com/s/ajbv6ji3mjcwxqn/teensyplusplus_test1.tar.gz?dl=0
I tried it with the same *.py that I had created and just used this version to build it again. I had the same result.
Should I create a new keyboard from the start?
Two more builds to try:
https://www.dropbox.com/s/k1f93ss6d2n04yv/teensyplusplus_test2.tar.gz?dl=0
https://www.dropbox.com/s/u5x****w09q6rou/teensyplusplus_test3.tar.gz?dl=0
The test2 build resulted in the same behavior. The test3 could not be found at dropbox. Could it be the asterisks?
-
Two more builds to try:
https://www.dropbox.com/s/k1f93ss6d2n04yv/teensyplusplus_test2.tar.gz?dl=0
https://www.dropbox.com/s/u5x****w09q6rou/teensyplusplus_test3.tar.gz?dl=0
The test2 build resulted in the same behavior. The test3 could not be found at dropbox. Could it be the asterisks?
The asterisks are the result of geekhacks profanity filter which is on by default. To change this go here https://geekhack.org/index.php?action=profile;area=forumprofile and select modify profile, then look and layout, then check the "leave words uncensored" box. You could also replace the asterisks with the "f word" :)
-
Two more builds to try:
https://www.dropbox.com/s/k1f93ss6d2n04yv/teensyplusplus_test2.tar.gz?dl=0
https://www.dropbox.com/s/u5x****w09q6rou/teensyplusplus_test3.tar.gz?dl=0
The test2 build resulted in the same behavior. The test3 could not be found at dropbox. Could it be the asterisks?
The asterisks are the result of geekhacks profanity filter which is on by default. To change this go here https://geekhack.org/index.php?action=profile;area=forumprofile and select modify profile, then look and layout, then check the "leave words uncensored" box. You could also replace the asterisks with the "f word" :)
**** THAT WORKED
It boots in boot mode! Thank you very very much. :)
-
A working boot key on the 2.0++ is excellent news, I'll have to upgrade.
Thanks metalliqaz :thumb:
-
A working boot key on the 2.0++ is excellent news, I'll have to upgrade.
Thanks metalliqaz :thumb:
Be careful with that test build. It's a perfectly normal build but it only works on Teensy++ 2.0. If you load it on an AT90USB128 that doesn't have the Teensy bootloader, it won't work.
I still haven't figured out why my normal code won't work and it's pissing me off. Not sure how I will incorporate this into a normal release. I will continue making a few test builds, most likely.
-
First release in a long time:
https://github.com/dhowland/EasyAVR/releases/tag/v3.01.11
-
First release in a long time:
https://github.com/dhowland/EasyAVR/releases/tag/v3.01.11
So just the one extra 'if' to bodge in the alternate working code? GUI has tabs instead of needing to use menus in the last version I have, a good improvement all round :)
-
Hello everyone, How could I configure a key "One Shot Keys" in EasyAVR (easykeymap.exe)?
that is, I want to press the shift key once and release it, then press a normal key and
run in capital letters only that first time.
I cant find the solution, :(
-
Hello everyone, How could I configure a key "One Shot Keys" in EasyAVR (easykeymap.exe)?
that is, I want to press the shift key once and release it, then press a normal key and
run in capital letters only that first time.
I cant find the solution, :(
I don't think EasyAVR supports that right now. It's an interesting idea. Basically a temporary mod lock. I'll try and think of something
Sent from my Pixel 3 XL using Tapatalk
-
Hi,
You may be able to do this with settings in your OS, with "Sticky Keys"
Setable in the control panel.
The "disadvantage" is that it turns the feature on/off for Ctrl, Win, and Alt too.
But, if you press and hold shift like you're doing today, it still acts like a normal shift. So no harm done.
-
With autohotkey I have a solution
but is not a clean solution, been the keyboard programmable and when changing PC, is easy to loss the autohotkey script.
------------------------------
$shift::
Input, OutputVar, L1
Send +%OutputVar%
-----------------------------
It is not clean because Input wait for letter key only.
It works but I would like as an smart Easy Avr feature.
-
Hello everyone, How could I configure a key "One Shot Keys" in EasyAVR (easykeymap.exe)?
that is, I want to press the shift key once and release it, then press a normal key and
run in capital letters only that first time.
I cant find the solution, :(
Released version 3.2.1 with this feature
https://github.com/dhowland/EasyAVR/releases/tag/v3.02.01
-
Very thankful, :)
-
8 mods?! Shift, ctrl, win, alt, alt gr... I guess JIS has different uses for all the right side mods? More is always better, great work as always :thumb:
-
8 mods?! Shift, ctrl, win, alt, alt gr... I guess JIS has different uses for all the right side mods? More is always better, great work as always :thumb:
Since the beginning people have been asking for either left or right mods. This fixes it once and for all.
-
Can I use 5 LEDs independents as indicators ?
Using Teensy 2++,
for this options: capital letters, Fn0, Fn1, Fn2, Fn3
-
Can I use 5 LEDs independents as indicators ?
Using Teensy 2++,
for this options: capital letters, Fn0, Fn1, Fn2, Fn3
I'm not following. Is it a handwired board?
Sent from my Pixel 3 XL using Tapatalk
-
It is wired same as a Planck, in reality as split planck with 2 PCB for 6x4 keys each, then connected by 2 wires 10 cores with a box that have the Teensy 2.0++ and goes out by USB connector.
I have made before another model hand wired based in same scheme of Planck, wiring is 4x12 in reality, but split too. With Teensy 2.0
My idea is that I can add easily leds to the box of microcontroller.
When testing (learning typing) I have found in some cases that I need info of what layout was active in an easy manner. But dont want decipher blink.
About leds,I need the info, by now the design is without leds.
-
I think you can use as many LEDs as indicators as you have spare pins, there might be a limit but it's definitely more than 5 because the GH60 config file (snippet below) uses 5. The names 'Caps key' 'Esc Key' 'WASD' etc are so you know where the LED is, the next bit is the thing they indicate by default (can be changed in the mapper)
num_leds = 5
num_ind = 5
num_bl_enab = 4
led_definition = [
('Caps Key', 'Caps Lock'),
('Esc Key', 'Num Lock'),
('WASD', 'Fn Active'),
('Poker Arrows', 'Fn2 Active'),
('Fn Key', 'Fn3 Active')
]
led_hardware = [
# Port Pin Direction
( REF_PORTB, 2, LED_DRIVER_PULLDOWN ),
( REF_PORTF, 6, LED_DRIVER_PULLDOWN ),
( REF_PORTF, 7, LED_DRIVER_PULLDOWN ),
( REF_PORTF, 4, LED_DRIVER_PULLDOWN ),
( REF_PORTF, 5, LED_DRIVER_PULLDOWN )
Obviously you'll need to change the pins and PULLUP/PULLDOWN depending on your wiring :)
-
suicidal_orange, thank you, I think is the info I need
-
I hadn't used this application in a while, but yesterday i downloaded the latest version to modify a few things on my keyboard.
I encountered a problem though, i couldn't seem to program the hex-file onto my GH60 anymore. Problem seemed to be with the applications used for programming it to the usb.
dfu-programmer.exe wont run: The code execution cannot proceed because libusb0.dll was not found. Reinstalling the program may fix this problem.
I finally found the file online and downloaded it and put it in the exttools-folder. I put my keyboard in the correct mode for programming and ran it once again. Now i get the message:
dfu-programmer: no device present.
Any advice on how to fix this would be appreciated!
Update:
Once i put the keyboard in bootloader mode it turns up as an unknown device in device manager.
The drivers for this device ar note installed. (Code 28)
A service installation section in this INF is invalid
What i did next was that i tried updating the driver automaticly, which gave the same error all over again. I tried it manually and I chose drivers from a list. Choosing the latest one (from 2013) gave the same error, but chosing the older one from 2010 did the trick.
Conclusion: Everything is now working, with older Atmel drivers.
-
I hadn't used this application in a while, but yesterday i downloaded the latest version to modify a few things on my keyboard.
I encountered a problem though, i couldn't seem to program the hex-file onto my GH60 anymore. Problem seemed to be with the applications used for programming it to the usb.
dfu-programmer.exe wont run: The code execution cannot proceed because libusb0.dll was not found. Reinstalling the program may fix this problem.
I finally found the file online and downloaded it and put it in the exttools-folder. I put my keyboard in the correct mode for programming and ran it once again. Now i get the message:
dfu-programmer: no device present.
Any advice on how to fix this would be appreciated!
Update:
Once i put the keyboard in bootloader mode it turns up as an unknown device in device manager.
The drivers for this device ar note installed. (Code 28)
A service installation section in this INF is invalid
What i did next was that i tried updating the driver automaticly, which gave the same error all over again. I tried it manually and I chose drivers from a list. Choosing the latest one (from 2013) gave the same error, but chosing the older one from 2010 did the trick.
Conclusion: Everything is now working, with older Atmel drivers.
thanks for the follow-up. did you install drivers you downloaded from Atmel?
-
thanks for the follow-up. did you install drivers you downloaded from Atmel?
No problem!
I just browsed existing drivers within Windows itself. To be honest I wasn't completely sure where to find updated drivers from Atmel. I'm sure I would have found them eventually, but since I got it working I stopped looking.
-
Okay, so I managed to crash easykeymap_windows_3_02_01 I'm not sure what I did, but I was using the define keyboard feature, but I just put garbage in some of it because I didn't have that info yet and wanted to see if this thing will work, so it might have saved that keyboard and now it errors on boot:
cx_Freeze: Application Terminated
OnInit returned false, exiting...
I could bumble my way though this, but now the software won't even boot and I can't find whatever was changed or save to delete it and deleting the entire folder that contains the program and exporting a new version from the zip doesn't fix anything.
What do I need to do to make this work again.
EDIT: Apologies. I solved it with a little RTFM.
-
Assuming you're in Windows you need to delete the board's config file from the path below. If you don't know the answer just enter something that could be right, not complete garbage - errors and error checking are the biggest weakness in this firmware which otherwise works very well.
c:\users\[you]\.EasyAVR\boards
-
Even if it was invalid, it shouldn't have crashed like that.
This is what happens when one person writes a sprawling, multi-function app in spare time: unhandled exceptions.
I'll take a look to see if I can make it more robust.
-
Okay, so I managed to crash easykeymap_windows_3_02_01 I'm not sure what I did, but I was using the define keyboard feature, but I just put garbage in some of it because I didn't have that info yet and wanted to see if this thing will work, so it might have saved that keyboard and now it errors on boot:
cx_Freeze: Application Terminated
OnInit returned false, exiting...
I could bumble my way though this, but now the software won't even boot and I can't find whatever was changed or save to delete it and deleting the entire folder that contains the program and exporting a new version from the zip doesn't fix anything.
What do I need to do to make this work again.
EDIT: Apologies. I solved it with a little RTFM.
thanks for letting me know. I have committed a fix (https://github.com/dhowland/EasyAVR/commit/76272905109693b18f404dade56f5f4da18c1747). Next release should be more robust.
-
Is there a way to send modifiers with a tap key? Macro tap keys would work too. I'm trying to have L/R Shift send parentheses when tapped.
-
Is there a way to send modifiers with a tap key? Macro tap keys would work too. I'm trying to have L/R Shift send parentheses when tapped.
That should work, you'd need to set the key as shift then the tap keycode would be the macro key. Not at a computer so can't actually test...
-
That should work, you'd need to set the key as shift then the tap keycode would be the macro key. Not at a computer so can't actually test...
The GUI won't allow me to select a macro key as the tap keycode. Do you think I'll have to edit the json file, 9 or am I missing something?
-
That should work, you'd need to set the key as shift then the tap keycode would be the macro key. Not at a computer so can't actually test...
The GUI won't allow me to select a macro key as the tap keycode. Do you think I'll have to edit the json file, 9 or am I missing something?
You're doing it backwards. Set the key to be a Shift and then set the tapkey to parentheses.
-
You're doing it backwards. Set the key to be a Shift and then set the tapkey to parentheses.
I'm pretty sure that's what I'm doing though. Here's a screenshot of the tap code set to '9'. It works how I would expect, but the macro keys are all disabled.
Thanks for your patience. I'm probably just being an idiot.
[attach=1]
-
You're doing it backwards. Set the key to be a Shift and then set the tapkey to parentheses.
I'm pretty sure that's what I'm doing though. Here's a screenshot of the tap code set to '9'. It works how I would expect, but the macro keys are all disabled.
Thanks for your patience. I'm probably just being an idiot.
(Attachment Link)
No, you're not being an idiot. Tapkeys currently only support alphas.
I think I understand now. You want parens but of course there is no parens key. So you get "9". Let me look into it.
Tapkeys are really just on-the-fly macros. Might be an opportunity.
-
No, you're not being an idiot. Tapkeys currently only support alphas.
I think I understand now. You want parens but of course there is no parens key. So you get "9". Let me look into it.
Tapkeys are really just on-the-fly macros. Might be an opportunity.
Sweet. Good to hear haha. Thank you!
-
No, you're not being an idiot. Tapkeys currently only support alphas.
I think I understand now. You want parens but of course there is no parens key. So you get "9". Let me look into it.
Tapkeys are really just on-the-fly macros. Might be an opportunity.
Sweet. Good to hear haha. Thank you!
By the way, in the mean time, you can hold the other shift key while you tap to get a parens.
-
No, you're not being an idiot. Tapkeys currently only support alphas.
I think I understand now. You want parens but of course there is no parens key. So you get "9". Let me look into it.
Tapkeys are really just on-the-fly macros. Might be an opportunity.
Sweet. Good to hear haha. Thank you!
Released v3.03.1 (https://github.com/dhowland/EasyAVR/releases/tag/v3.03.01)
-
Hi
I have recently bought a 60% mechanical keyboard from Deltaco it has a chip nr hfd2201kba and i was wondering if it was possible to re-flash it for more customization with easyAVR? I couldn't find much information on this chip other than a post saying that it might be a STM32.
Hope i can get help her thanks in advanced.
-
Hi
I have recently bought a 60% mechanical keyboard from Deltaco it has a chip nr hfd2201kba and i was wondering if it was possible to re-flash it for more customization with easyAVR? I couldn't find much information on this chip other than a post saying that it might be a STM32.
Hope i can get help her thanks in advanced.
Sorry, EasyAVR only works on AVR microcontrollers.
Sent from my Pixel 3 XL using Tapatalk
-
I want to automate a task of "hit control, hit control, hit enter".
I've tried to build a macro of
$LCTRL()$WAIT(10)$LCTRL()$WAIT(10)${ENTER}
and it doesn't work. Putting it into a tester implies it's only "pressing" control once.
If I do
$LCTRL()$WAIT(10)$RCTRL()$WAIT(10)${ENTER}
instead, the distinct keystrokes are recognized.
I'm curious if this is a faulty configuration on my part, some sort of optimization (if someone enters twenty modified keys in a row, it smashes it down to a single hold-down-the-modifier), or a big.
-
That's a really good question. I'll look into it
Sent from my Pixel 3 XL using Tapatalk
-
Guys, I hope I won't piss you off with my noob questions here:)
So I got this beautiful QFR keyboard with Forsty Flake.
I would like to add a simple layer to it with pounds sign (board I have is ANSI).
First, I have problem with actual setting things up. Got Flip, got EasyAVR. Now, how can I get this keyboard to be seen by this software?
I understand I need to install Atmel drivers first? Those from Flip folder? How do I do that? I don't see QFR/Atmel keyboard on device list:(
-
Guys, I hope I won't piss you off with my noob questions here:)
Not at all, though the first answer will always be read the manual (http://dhowland.github.io/EasyAVR/build/html/getstarted.html#programming-a-build) :)
-
I want to automate a task of "hit control, hit control, hit enter".
I've tried to build a macro of
$LCTRL()$WAIT(10)$LCTRL()$WAIT(10)${ENTER}
and it doesn't work. Putting it into a tester implies it's only "pressing" control once.
If I do
$LCTRL()$WAIT(10)$RCTRL()$WAIT(10)${ENTER}
instead, the distinct keystrokes are recognized.
I'm curious if this is a faulty configuration on my part, some sort of optimization (if someone enters twenty modified keys in a row, it smashes it down to a single hold-down-the-modifier), or a big.
Confirmed. It will be fixed in the next version.
-
I'm to defibrillate a dead post to push my luck with RGB LED indicators.
What I'd like to do is to have one or two RGB LED indicators, specifically WS2812B, on my board with Easy AVR.
I know edfan achieved RGB backlighting on pin C (https://github.com/dhowland/EasyAVR/pull/5) so I assume it's possible to edit the code to have this functionality on a different pin.
I have a very limited python knowledge so I'm not proficient to get there alone.
I know I'm asking much, but has anyone already tried that with success or do they feel like trying?
Thanks.
-
Why do you need a complicated RGB LED for an indicator or two? Standard 4 pin LEDs are effectively 3 LEDs in one and will work fine, if you have the pins.
While it would be great to add RGB to this the reason the pull request was rejected is that it's not flexible enough and only works on port C, I don't understand Python, the LEDs or the chip to know which is the limitation but am intrigued enough to look into it.
Where did you want to connect them?
-
Why do you need a complicated RGB LED for an indicator or two? Standard 4 pin LEDs are effectively 3 LEDs in one and will work fine, if you have the pins.
4 pin LEDs would do but they are obsolete technology if you ask me. SMD leds can be daisy chained for multiple usages, such as backlighting as future implementation of both keyboards and software.
While it would be great to add RGB to this the reason the pull request was rejected is that it's not flexible enough and only works on port C, I don't understand Python, the LEDs or the chip to know which is the limitation but am intrigued enough to look into it.
I frankly believe that was a coder designer to only go for pin C. If other firmwares can make it work on every pin, why couldn't Easy AVR?
Where did you want to connect them?
Where as in which pin or what keyboard? In the first case my LEDs are currently wired to B5 and B6. In the latter, any keyboard in my signature.
-
I'm to defibrillate a dead post to push my luck with RGB LED indicators.
What I'd like to do is to have one or two RGB LED indicators, specifically WS2812B, on my board with Easy AVR.
I know edfan achieved RGB backlighting on pin C (https://github.com/dhowland/EasyAVR/pull/5) so I assume it's possible to edit the code to have this functionality on a different pin.
I have a very limited python knowledge so I'm not proficient to get there alone.
I know I'm asking much, but has anyone already tried that with success or do they feel like trying?
Thanks.
I haven't added support for that kind of RGB for two reasons. First, I don't own any hardware with a WS2812B, so I have no way of testing. Second, it is a large, complex job to add general support and make it configurable, and I don't have time (two small children).
It's possible that edfan's code would work with the current code base, I don't know for sure. Adding support in a way that plays nice with the realtime schedule is a challenge.
-
I understand, thanks metalliqaz.
-
Okay, so I managed to crash easykeymap_windows_3_02_01 I'm not sure what I did, but I was using the define keyboard feature, but I just put garbage in some of it because I didn't have that info yet and wanted to see if this thing will work, so it might have saved that keyboard and now it errors on boot:
cx_Freeze: Application Terminated
OnInit returned false, exiting...
I could bumble my way though this, but now the software won't even boot and I can't find whatever was changed or save to delete it and deleting the entire folder that contains the program and exporting a new version from the zip doesn't fix anything.
What do I need to do to make this work again.
EDIT: Apologies. I solved it with a little RTFM.
What did you do to make this work again? I'm having the same issue and I cannot figure out what's causing it.
-
Okay, so I managed to crash easykeymap_windows_3_02_01 I'm not sure what I did, but I was using the define keyboard feature, but I just put garbage in some of it because I didn't have that info yet and wanted to see if this thing will work, so it might have saved that keyboard and now it errors on boot:
cx_Freeze: Application Terminated
OnInit returned false, exiting...
I could bumble my way though this, but now the software won't even boot and I can't find whatever was changed or save to delete it and deleting the entire folder that contains the program and exporting a new version from the zip doesn't fix anything.
What do I need to do to make this work again.
EDIT: Apologies. I solved it with a little RTFM.
What did you do to make this work again? I'm having the same issue and I cannot figure out what's causing it.
Hmm.. I thought I fixed this. Are you running the latest version? Are you getting the same Oninit error? If so, go delete whatever file you made in the config dir in your user directory.
-
@odd attach the file here first and I'll try and stop it crashing (I wont say fix as I don't know your board...)