Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recent changes have broken Infinity Ergodox support. #204

Open
kll opened this issue May 31, 2017 · 76 comments
Open

Recent changes have broken Infinity Ergodox support. #204

kll opened this issue May 31, 2017 · 76 comments
Labels

Comments

@kll
Copy link

@kll kll commented May 31, 2017

From a fresh clone of the repository master branch (commit 51b6b43 as of the time I'm writing this), building with ergodox.bash and flashing the resulting firmware causes 2 weird issues. I'm getting the wrong output offset by one key and its also outputting the corresponding key from both sides of the keyboard. For example if I press the escape key I get an output of 56, if I press the 5 key I get 47, etc. I connected to the debug console and turned on matrixDebug and it is reporting the wrong scan codes as well. For the escape key which should be scan code 0x2 it shows 0x3 and for the 5 key I get 0x4 instead of 0x3. Moving over to the last column I get no output at all and no scan codes reported. The behavior is the same on all rows and both halves of the keyboard.

I've tried to track down when the change occurred by building and flashing each recent commit and checking for when the behavior changed. It was a bit tricky because the kll submodule also has to be manipulated to get a successful build. Here is what I came up with. The last commit where things work as expected is c7fb6d1. Starting on commit 0cbb451 the scan code reported is wrong, but I don't get the output from both sides of the keymap. In this case pressing escape outputs only 5 instead of 56. The commit for the kll submodule that let me compile both of those commits was 2062be0.

Hopefully that information is helpful. I did a diff between those two commits to try to narrow it down further but there was a lot more changes than I was expecting. I picked those commits looking at the timeline for the master branch here on github which I think wasn't very helpful since it is sorted by date and they actually happened on different branches I believe. I'll try to dig some more and see if I can narrow it down any better.

I've been really looking forward to the new features in KLL 0.5!

@haata

This comment has been minimized.

Copy link
Member

@haata haata commented May 31, 2017

Yeah, Ergodox is currently broken. I'm working on fixes so it shouldn't be too much longer (interconnect is tricky).

For now I'd recommend using the 'old' branch if you're on an Infinity Ergodox

@kll

This comment has been minimized.

Copy link
Author

@kll kll commented May 31, 2017

Ok, I was getting ahead of myself then. :( Unfortunately for me that means back to a fairly buggy TMK port. I'm lost without "tap keys"! So I've been eyeing your KLL 0.5 progress ever since I got this Infinity Ergodox and realized the official firmware didn't support them.

If there's anything at all I might be able to do to help let me know. I'm not very strong in C but I do have some experience.

@jceaser

This comment has been minimized.

Copy link
Contributor

@jceaser jceaser commented Jun 3, 2017

I guess this is why I can't compile when I have the following in my KII file:

U"LBRACE" : U"NEXT LAYER";

I found U"Next Layer" :: layerRotate( 0 ); # 0 is Next

and switched to: U"LBRACE" : layerRotate( 0 );

Got past at least one error. Now complaining about undefined reference to `Pixel_AnimationSettings'

@jceaser

This comment has been minimized.

Copy link
Contributor

@jceaser jceaser commented Jun 3, 2017

also, no mouseOut

@haata

This comment has been minimized.

Copy link
Member

@haata haata commented Jun 3, 2017

@jceaser

This comment has been minimized.

Copy link
Contributor

@jceaser jceaser commented Jun 4, 2017

yea, I'm one PixelMap. I'm compiling for Ergodox.

ScanModule="Infinity_Ergodox"
MacroModule="PixelMap"
OutputModule="pjrcUSB"
DebugModule="full"

Is there a migration guide for moving to KLL 0.5?

@jceaser

This comment has been minimized.

Copy link
Contributor

@jceaser jceaser commented Jun 4, 2017

what do I use for
Default Map? Im starting to just throw everything at it: Originally I used just lcdFuncMap

DefaultMap="mine/MDErgo1-base stdFuncMap lcdFuncMap animation_test iced_func k-type/unset_v1 k-type/rainbow_wipe k-type/color_painter"

@cogliostro

This comment has been minimized.

Copy link

@cogliostro cogliostro commented Jul 6, 2017

The old branch doesn't work either it seems. I get a KeyError: 'AnimationList' when compiling the ergodox kll's.

@curiously-b2

This comment has been minimized.

Copy link

@curiously-b2 curiously-b2 commented Jul 7, 2017

May 31 ... shouldn't be too much longer

Got any ETA on a fix?

@danspiff

This comment has been minimized.

Copy link

@danspiff danspiff commented Jul 17, 2017

I just wanted to post this for anyone that wanted to build the last working revisions above. I struggled to figure this out and thought I would share:

  1. git clone https://github.com/kiibohd/controller
  2. cd controller/
  3. git checkout c7fb6d1
  4. cd Keyboards/
  5. ./ergodox.bash
    Expect build to fail.
  6. cd ../kll
  7. git checkout 2062be0
  8. cd ../Keyboards
  9. ./ergodox.bash
  10. Customize from here and rebuild.
@daantjie

This comment has been minimized.

Copy link

@daantjie daantjie commented Jul 18, 2017

@danspiff; I fail on (9):

[ 96%] Linking C executable kiibohd.elf
CMakeFiles/kiibohd.elf.dir/Scan/ISSILed/led_scan.c.obj: In function `I2C_Send':
/home/daniel/hotfix/controller/Scan/ISSILed/led_scan.c:591: undefined reference to `I2C_BufferCopy'
CMakeFiles/kiibohd.elf.dir/Scan/ISSILed/led_scan.c.obj: In function `LED_setup':
/home/daniel/hotfix/controller/Scan/ISSILed/led_scan.c:392: undefined reference to `I2C_setup'
CMakeFiles/kiibohd.elf.dir/Scan/STLcd/lcd_scan.c.obj: In function `LCD_clear':
/home/daniel/hotfix/controller/Scan/STLcd/lcd_scan.c:241: undefined reference to `LCD_clearPage'
CMakeFiles/kiibohd.elf.dir/Scan/STLcd/lcd_scan.c.obj: In function `LCD_setup':
/home/daniel/hotfix/controller/Scan/STLcd/lcd_scan.c:298: undefined reference to `SPI_setup'
CMakeFiles/kiibohd.elf.dir/Macro/PartialMap/trigger.c.obj: In function `Macro_evalTriggerMacro':
/home/daniel/hotfix/controller/Macro/PartialMap/trigger.c:293: undefined reference to `Macro_evalLongTriggerMacroVote'
/home/daniel/hotfix/controller/Macro/PartialMap/trigger.c:294: undefined reference to `Macro_evalShortTriggerMacroVote'
/home/daniel/hotfix/controller/Macro/PartialMap/trigger.c:350: undefined reference to `Macro_isLongResultMacro'
CMakeFiles/kiibohd.elf.dir/Macro/PartialMap/trigger.c.obj: In function `Trigger_process':
/home/daniel/hotfix/controller/Macro/PartialMap/trigger.c:474: undefined reference to `Macro_updateTriggerMacroPendingList'
CMakeFiles/kiibohd.elf.dir/Debug/cli/cli.c.obj: In function `CLI_init':
/home/daniel/hotfix/controller/Debug/cli/cli.c:79: undefined reference to `prompt'
CMakeFiles/kiibohd.elf.dir/Debug/cli/cli.c.obj: In function `CLI_tabCompletion':
/home/daniel/hotfix/controller/Debug/cli/cli.c:393: undefined reference to `prompt'
CMakeFiles/kiibohd.elf.dir/Debug/cli/cli.c.obj: In function `CLI_retreiveHistory':
/home/daniel/hotfix/controller/Debug/cli/cli.c:446: undefined reference to `prompt'
CMakeFiles/kiibohd.elf.dir/Debug/cli/cli.c.obj: In function `CLI_process':
/home/daniel/hotfix/controller/Debug/cli/cli.c:188: undefined reference to `prompt'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/kiibohd.elf.dir/build.make:688: kiibohd.elf] Error 1
make[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/kiibohd.elf.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
Error in make. Exiting...
@daantjie

This comment has been minimized.

Copy link

@daantjie daantjie commented Jul 18, 2017

Actually, pretty much the same thing happens on the old branch. I don't know if anyone has a fix.

@crystalhand

This comment has been minimized.

Copy link

@crystalhand crystalhand commented Jul 19, 2017

This is happening on the older ones because it is downloading the latest kll files when you are running make. You need to download the older ones from 2062be0 and manually put them in the kiibohd folder.

AlteredConstants added a commit to AlteredConstants/ergodox-scripts that referenced this issue Jul 20, 2017
There are currently problems with the Ergodox build.
kiibohd/controller#204 (comment)
@jceaser

This comment has been minimized.

Copy link
Contributor

@jceaser jceaser commented Jul 21, 2017

am I reading things right: reset --hard 2062be0 should get me to the last ergo dox build that works?
I followed @danspiff directions and I have a set up that compiles. Will try applying my key layout and will test on the keyboard.


Many days latter, I can confirm that this solution works, I have a working layout running on my keyboard. It is slightly better in that I still have a dead key, but it does not fully crash my board.

@wailashi

This comment has been minimized.

Copy link

@wailashi wailashi commented Jul 28, 2017

Following the steps described by danspiff I get the same error as daantjie. Any advice?

@daantjie

This comment has been minimized.

Copy link

@daantjie daantjie commented Jul 28, 2017

@wailashi; have a look at crystalhand's response above. (I haven't tried it yet.)

@wailashi

This comment has been minimized.

Copy link

@wailashi wailashi commented Jul 29, 2017

@daantjie, I'm having a hard time understanding @crystalhand's advice. Which files I am supposed to place where? There is no kiibohd folder that I can find.

I tried modified the makefiles to get 2062be0 instead of the latest version, but I get the same errors.

@crystalhand

This comment has been minimized.

Copy link

@crystalhand crystalhand commented Jul 29, 2017

I just double checked to make sure it works and it does. This is what you need to do:
Note: This assumes you are running in either linux (preferably) or win 10 using bash. Dont try this in win 7 as it is much more trouble then grabbing vmplayer and ubuntu. You will also need to follow the instructions here: https://github.com/kiibohd/controller/wiki/Linux-Setup. This will install the needed packages.

  1. Dowload this repository as a zip and extract it
    https://github.com/kiibohd/controller/tree/c7fb6d1c3be29de1bcb0b9c7201448e66fb2ca33
    Call this folder KiibohdControler (name does not matter all that much)

  2. download this repository and extract it as a subfolder of /KiibohdControler
    https://github.com/kiibohd/controller/tree/2062be08e34430d523b20947e9eb5a3ec3948331

  3. Rename the folder extracted in 2 to "kll" (The name of this folder is critical)

  4. navigate to the "keyboards" folder ie /KiibohdControler/keyboards

  5. open terminal/bash within this folder and enter "./ergodox.bash" this will build the bin file for you. They will be located within two folders that are created. One for the left side and the other for the right. You only have to flash the master side.

@wailashi

This comment has been minimized.

Copy link

@wailashi wailashi commented Jul 29, 2017

@crystalhand following your steps exactly it still fails for me. :/ Same linker errors as daantjie had earlier. I'm doing this on arch linux.
Thanks for the help anyway!

@daantjie

This comment has been minimized.

Copy link

@daantjie daantjie commented Jul 29, 2017

@wailashi I'm also on Arch. (Coincidence?)

@crystalhand

This comment has been minimized.

Copy link

@crystalhand crystalhand commented Jul 29, 2017

I did my test this morning in windows but most of the time I am using an Ubuntu VM. I would give that a try. The error referenced is a link error so my only thought is to double check that you are downloading the right version. I had something similar when I would use a newer version of the kll folder with c7fb6d1

@wailashi

This comment has been minimized.

Copy link

@wailashi wailashi commented Jul 31, 2017

@daantjie Not a coincidence.
I found a fix and I'm now able to compile the controller. This seems to be a portability problem with inline (see relevant stack overflow question). Changing to static inline fixes the problem for me.

This patch file contains the fixes that worked for me.

@andru

This comment has been minimized.

Copy link

@andru andru commented Aug 3, 2017

The steps @crystalhand outlined gets things building for me again, but if I map any of the functions defined in stdFuncMap.kll or lcdFuncMap.kll to a key then pressing that key does a big nothing, so unfortunately I've lost all my layers.

Edit: It was a problem with my config. Crystalhand's method got things working for me again :)

@nayr1991

This comment has been minimized.

Copy link

@nayr1991 nayr1991 commented Sep 8, 2017

What are the chances that this is affecting a teensy3.2 custom wired setup?
After updating the controller repo, my previously working matrix seems to be offset by 1 and a couple of the lower keys are reported as out of bounds by matrixDebug. Is crystalhand's workaround the only way to get around this currently?

@crystalhand

This comment has been minimized.

Copy link

@crystalhand crystalhand commented Sep 8, 2017

The chances of this affecting a teensy ergodox are pretty close to 100%. the issue is not hardware based but software. Because its the same code across all of the ditterent chips for ergodox layout it is going to happen. I would suggest taking a look at QMK. while the kiibohd firmware is much more elegant the dev support seems to be much less. I assume their current efforts are focused on the k type keyboard that was on massdrop recently. We will probably get more attention once the dust from that settles.

@kll

This comment has been minimized.

Copy link
Author

@kll kll commented Sep 8, 2017

I agree with @crystalhand . I gave up and switched to QMK long ago.

@jceaser

This comment has been minimized.

Copy link
Contributor

@jceaser jceaser commented Sep 8, 2017

How is the QMK support compared to this software as far as stability goes?

I do have a working setup following the steps outlined here, but I'm desperately waiting for the k-type code to be merged and successfully integrated with other boards. Frankly the people here should have not merged the k-type branch into master until everything was working. Don't get me wrong, I love the concept of what is trying to be done with kii but breaking ergodox is not cool.

@dfaught

This comment has been minimized.

Copy link

@dfaught dfaught commented Oct 3, 2017

ic-generated-kll.tar.gz

As with @kdayns it is only the right side failing.

@einalex

This comment has been minimized.

Copy link

@einalex einalex commented Oct 3, 2017

I don't get any errors compiling my KLL files and keys are mostly correct. It's just the innermost row on both halves that is erroneous. The left half keys produce outputs for both sides (first left, then right), right side keys produce no output.

@haata

This comment has been minimized.

Copy link
Member

@haata haata commented Oct 3, 2017

@einalex it sounds like you haven't updated the kll git repo (I think I've fixed that issue).

@kdayns @dfaught thanks! I'll look at this over the next couple days.

@einalex

This comment has been minimized.

Copy link

@einalex einalex commented Oct 3, 2017

I did update the kll git repo, before that I got kll compile errors.

@einalex

This comment has been minimized.

Copy link

@einalex einalex commented Oct 3, 2017

commit 668027c4050c63c051a126bf3ff30002b2a4bf28 (HEAD, origin/master, origin/HEAD)
Author: Jacob Alexander haata@kiibohd.com
Date: Mon Oct 2 23:14:38 2017 -0700

@metsie2912

This comment has been minimized.

Copy link

@metsie2912 metsie2912 commented Oct 4, 2017

I have similar problems like dfaught.
I'm using arch linux and all compiles successfully with the latest controller software. But my left keyboard has the keys shifted to the left. (e=r, w=e, s=d, etc.) The right (which is master) part seems to work fine though. The exact same layout compiles correctly using the older software (following danspiff's instructions). Attached you'll find my kll files and ergodox.bash.
One small thing: using the older version I compile with 'MacroModule="PartialMap"' and with the new one I use 'MacroModule="PixelMap"'.
kiibohdlayout.tar.gz

@dfaught

This comment has been minimized.

Copy link

@dfaught dfaught commented Oct 4, 2017

@metsie2912, I know longer experience the offset keys after haata's latest commit: c25f15c

I only have a compilation error for the right half. Have you updated your kll folder and recompiled?

@metsie2912

This comment has been minimized.

Copy link

@metsie2912 metsie2912 commented Oct 4, 2017

@dfaught Unfortunately yes. I tried it again just to be sure. I'm using the following commits:

  • kiibohd/controller
    3299f4d (HEAD -> master, origin/master, origin/HEAD) Fixing more unit tests
  • kll
    cb1e0dd (HEAD -> master, origin/master, origin/HEAD) Fixing offset issue generating Partial Map trigger lists

I don't have compilation errors.

@einalex

This comment has been minimized.

Copy link

@einalex einalex commented Oct 5, 2017

I looked into the generatedKeymap.h and found what's causing the double sent keys. On the .h file for the left half, the respective keys get additional Macros assigned:

/* 0 */ Define_TM( 0, 56 ), // (S3) : (HID(USBCode)"KEY_BACKSLASH");           <-- this shoud be on another key.
/* 1 */ Define_TM( 0, 59 ), // (S3) : (HID(USBCode)"KEY_BACKTICK");
/* 2 */ Define_TM( 0, 121 ), // (S3) : (layerShift(6) + LCDLayerDisplay());
Define_TL( default, 0x03 ) = { 2, 0, 1 };                                     <-- there should only be one

einalex files.zip

I'm using the following commits:
KLL:
commit cb1e0dd3799f4c231350bbd76062ce4315f20317 (HEAD -> master, origin/master, origin/HEAD)
Author: Jacob Alexander haata@kiibohd.com
Date: Tue Oct 3 22:45:16 2017 -0700

controller:
commit 3299f4d (HEAD -> master, origin/master, origin/HEAD)
Author: Jacob Alexander haata@kiibohd.com
Date: Tue Oct 3 15:09:29 2017 -0700

@haata

This comment has been minimized.

Copy link
Member

@haata haata commented Oct 10, 2017

I've fixed some more issues. Still need to verify if I've fixed the problems here.

@haata

This comment has been minimized.

Copy link
Member

@haata haata commented Oct 10, 2017

I believe I've fixed this issue. @kdayns @dfaught please let me know if you're still seeing issues with the latest controller and kll repos.

@LaikeSF

This comment has been minimized.

Copy link

@LaikeSF LaikeSF commented Oct 10, 2017

Seems like I've hit a snag with the latest controller and kll repos. Using the default setting compiles okay, but something about my old layouts is throwing up errors.

`-- Configuring done
-- Generating done
-- Build files have been written to: /mnt/x/ErgoDox/controller/Keyboards/linux-gnu.ICED-R.gcc.make
[ 3%] Generating KLL Layout
kll BETA 0.5c.43a671b99cdd0a92ce3ad0d783764ba94e12f44b - 2017-10-10 00:23:21 -0700
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Devices/ISSILed/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Devices/MatrixARM/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Devices/STLcd/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Devices/UARTConnect/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Macro/PartialMap/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Macro/PixelMap/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Output/HID-IO/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Output/pjrcUSB/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Infinity_Ergodox/scancode_map.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Infinity_Ergodox/rightHand.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Infinity_Ergodox/slave1.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Infinity_Ergodox/leftHand.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-0.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/kll/layouts/infinity_ergodox/lcdFuncMap.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-1.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-2.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-3.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-4.kll'
Scanning dependencies of target kiibohd
[ 6%] Building C object CMakeFiles/kiibohd.dir/Scan/Devices/ISSILed/i2c.c.o
[ 9%] Building C object CMakeFiles/kiibohd.dir/Scan/Devices/ISSILed/led_scan.c.o
[ 12%] Building C object CMakeFiles/kiibohd.dir/Scan/Devices/MatrixARM/matrix_scan.c.o
[ 15%] Building C object CMakeFiles/kiibohd.dir/Scan/Devices/STLcd/lcd_scan.c.o
[ 18%] Building C object CMakeFiles/kiibohd.dir/Scan/Devices/UARTConnect/connect_scan.c.o
[ 21%] Building C object CMakeFiles/kiibohd.dir/Macro/PartialMap/macro.c.o
[ 25%] Building C object CMakeFiles/kiibohd.dir/Macro/PartialMap/result.c.o
[ 28%] Building C object CMakeFiles/kiibohd.dir/Macro/PartialMap/trigger.c.o
[ 31%] Building C object CMakeFiles/kiibohd.dir/Macro/PixelMap/pixel.c.o
[ 34%] Building C object CMakeFiles/kiibohd.dir/generatedPixelmap.c.o
[ 37%] Building C object CMakeFiles/kiibohd.dir/Output/HID-IO/hidio_com.c.o
[ 40%] Building C object CMakeFiles/kiibohd.dir/Output/pjrcUSB/output_com.c.o
[ 43%] Building C object CMakeFiles/kiibohd.dir/Output/pjrcUSB/arm/usb_desc.c.o
[ 46%] Building C object CMakeFiles/kiibohd.dir/Output/pjrcUSB/arm/usb_dev.c.o
[ 50%] Building C object CMakeFiles/kiibohd.dir/Output/pjrcUSB/arm/usb_keyboard.c.o
[ 53%] Building C object CMakeFiles/kiibohd.dir/Output/pjrcUSB/arm/usb_mouse.c.o
[ 56%] Building C object CMakeFiles/kiibohd.dir/Output/pjrcUSB/arm/usb_rawio.c.o
[ 59%] Building C object CMakeFiles/kiibohd.dir/Output/pjrcUSB/arm/usb_serial.c.o
[ 62%] Building C object CMakeFiles/kiibohd.dir/Debug/cli/cli.c.o
Linking C executable kiibohd.elf
Creating dfu binary file: kiibohd.dfu.bin
Creating secure dfu binary file: kiibohd.dfu.bin
Setting new key
Key Prepended: 0000000000000000
Creating Extended Listing: kiibohd.lss
Creating Symbol Table: kiibohd.sym
[ 93%] Built target kiibohd
[ 96%] Message for DFU targets
NOTE: kiibohd.secure.dfu.bin is required for secure Kiibohd Bootloaders.
Only keyboards from late 2017 and onwards, support this.
See lsusb -d 1c11: -v and look for iInterface 4 Kiibohd DFU Secure.
Otherwise, use the kiibohd.dfu.bin file when it says iInterface 4 Kiibohd DFU.
Use the physical reset button on the back of the keyboard to temporarily disable secure mode.
NOTE2: Secure mode is disabled currently, but will be enabled when key negotiation is supported.
[ 96%] Built target DFUMessage
[100%] Chip usage for mk20dx256vlh7
SRAM: 16% 10956/65536 bytes
Flash: 23% 59000/253952 bytes
[100%] Built target SizeAfter
Firmware has been compiled into: 'linux-gnu.ICED-R.gcc.make'
/mnt/x/ErgoDox/controller/Keyboards
laike@DESKTOP-N0037SR:/mnt/x/ErgoDox/controller/Keyboards$
laike@DESKTOP-N0037SR:/mnt/x/ErgoDox/controller/Keyboards$ ./ergodox.bash
linux-gnu/Linux is supported.
Selected Generator: Unix Makefiles
linux-gnu.ICED-L.gcc.make
-- Build CPU Detected:
x86_64
-- Build OS Detected:
Linux 4.4.0-43-Microsoft
-- Compiler Family:
arm
-- Compiler Selected:
gcc
-- Chip Selected:
mk20dx256vlh7
-- Chip Family:
mk20dx
-- CPU Selected:
cortex-m4
-- Compiler Source Files:
Lib/mk20dx.c;Lib/delay.c;Lib/entropy.c;Lib/time.c
-- Bootloader Type:
dfu
-- Full Compiler:
/usr/bin/arm-none-eabi-gcc
-- Detected Scan Module Source Files:
Scan/Devices/ISSILed/i2c.c;Scan/Devices/ISSILed/led_scan.c;Scan/Devices/MatrixARM/matrix_scan.c;Scan/Devices/STLcd/lcd_scan.c;Scan/Devices/UARTConnect/connect_scan.c;Scan/Infinity_Ergodox/scan_loop.c
-- Detected Macro Module Source Files:
Macro/PartialMap/macro.c;Macro/PartialMap/result.c;Macro/PartialMap/trigger.c;Macro/PixelMap/pixel.c;/mnt/x/ErgoDox/controller/Keyboards/linux-gnu.ICED-L.gcc.make/generatedPixelmap.c
-- Detected Output Module Source Files:
Output/HID-IO/hidio_com.c;Output/pjrcUSB/output_com.c;Output/pjrcUSB/arm/usb_desc.c;Output/pjrcUSB/arm/usb_dev.c;Output/pjrcUSB/arm/usb_joystick.c;Output/pjrcUSB/arm/usb_keyboard.c;Output/pjrcUSB/arm/usb_mem.c;Output/pjrcUSB/arm/usb_mouse.c;Output/pjrcUSB/arm/usb_rawio.c;Output/pjrcUSB/arm/usb_serial.c
-- Detected Debug Module Source Files:
Debug/cli/cli.c;Debug/led/led.c;Debug/print/print.c
-- Detected Layout Files:
/mnt/x/ErgoDox/controller/Scan/Devices/ISSILed/capabilities.kll
/mnt/x/ErgoDox/controller/Scan/Devices/MatrixARM/capabilities.kll
/mnt/x/ErgoDox/controller/Scan/Devices/STLcd/capabilities.kll
/mnt/x/ErgoDox/controller/Scan/Devices/UARTConnect/capabilities.kll
/mnt/x/ErgoDox/controller/Macro/PartialMap/capabilities.kll
/mnt/x/ErgoDox/controller/Macro/PixelMap/capabilities.kll
/mnt/x/ErgoDox/controller/Output/HID-IO/capabilities.kll
/mnt/x/ErgoDox/controller/Output/pjrcUSB/capabilities.kll
/mnt/x/ErgoDox/controller/Scan/Infinity_Ergodox/scancode_map.kll
/mnt/x/ErgoDox/controller/Scan/Infinity_Ergodox/leftHand.kll
/mnt/x/ErgoDox/controller/Scan/Infinity_Ergodox/slave1.kll
/mnt/x/ErgoDox/controller/Scan/Infinity_Ergodox/rightHand.kll
/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-0.kll
/mnt/x/ErgoDox/controller/kll/layouts/infinity_ergodox/lcdFuncMap.kll
/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-1.kll
/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-2.kll
/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-3.kll
/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-4.kll
/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-5.kll
-- Could NOT find DFU_SUFFIX (missing: DFU_SUFFIX_EXECUTABLE)
CMake Warning at Lib/CMake/build.cmake:84 (message):
DFU Binary has not been signed, requires dfu-suffix...
Call Stack (most recent call first):
CMakeLists.txt:171 (include)

-- Configuring done
-- Generating done
-- Build files have been written to: /mnt/x/ErgoDox/controller/Keyboards/linux-gnu.ICED-L.gcc.make
[ 3%] Generating KLL Layout
kll BETA 0.5c.43a671b99cdd0a92ce3ad0d783764ba94e12f44b - 2017-10-10 00:23:21 -0700
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Devices/ISSILed/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Devices/MatrixARM/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Devices/STLcd/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Devices/UARTConnect/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Macro/PartialMap/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Macro/PixelMap/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Output/HID-IO/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Output/pjrcUSB/capabilities.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Infinity_Ergodox/scancode_map.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Infinity_Ergodox/leftHand.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Infinity_Ergodox/slave1.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/Scan/Infinity_Ergodox/rightHand.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-0.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/kll/layouts/infinity_ergodox/lcdFuncMap.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-1.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-2.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-3.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-4.kll'
ERROR: Failed to write to file '/mnt/x/ErgoDox/controller/kll/layouts/mine/MDErgo1-Default-5.kll'
ERROR: 'HID(USBCode)"KEY_LCK1"' Invalid USB HID code, missing FuncMap layout (e.g. stdFuncMap, lcdFuncMap)
ERROR: 'HID(USBCode)"KEY_LCK2"' Invalid USB HID code, missing FuncMap layout (e.g. stdFuncMap, lcdFuncMap)
ERROR: 'HID(USBCode)"KEY_LCK3"' Invalid USB HID code, missing FuncMap layout (e.g. stdFuncMap, lcdFuncMap)
ERROR: 'HID(USBCode)"KEY_LCK4"' Invalid USB HID code, missing FuncMap layout (e.g. stdFuncMap, lcdFuncMap)
ERROR: 'HID(USBCode)"KEY_LCK5"' Invalid USB HID code, missing FuncMap layout (e.g. stdFuncMap, lcdFuncMap)
ERROR: 'HID(USBCode)"KEY_LCK6"' Invalid USB HID code, missing FuncMap layout (e.g. stdFuncMap, lcdFuncMap)
ERROR: 'HID(USBCode)"KEY_LCK7"' Invalid USB HID code, missing FuncMap layout (e.g. stdFuncMap, lcdFuncMap)
ERROR: Invalid stage status 'Incomplete' for 'CodeGenerationStage'.
make[2]: *** [generatedKeymap.h] Error 1
make[1]: *** [CMakeFiles/kiibohd.dir/all] Error 2
make: *** [all] Error 2`

The layout in question
U"5" : U"Lock5"; U"4" : U"Lock4"; U"3" : U"Lock3"; U"2" : U"Lock2"; U"1" : U"Lock1"; U"EQUALS" : flashMode(); U"T" : U"0"; U"R" : U"9"; U"E" : U"8"; U"W" : U"7"; U"Q" : U"6"; U"6" : U"Lock6"; U"7" : U"Lock7";

Edit: As a temporary fix, I've added infinity_ergodox/lcdFuncMap to the problematic layout. Seems to have sorted the issue out for now.

@einalex

This comment has been minimized.

Copy link

@einalex einalex commented Oct 10, 2017

works for me :) thank you!

@kdayns

This comment has been minimized.

Copy link

@kdayns kdayns commented Oct 10, 2017

@haata compiles and seems fine except the left side as a slave has the key offset problem - keys are shifted left by one.
didn't try to run the righ side as a slave.

@einalex

This comment has been minimized.

Copy link

@einalex einalex commented Oct 10, 2017

I tried both sides as slaves. Both worked without any shift.
@kdayns did you delete the generated folder prior to compiling?

@kdayns

This comment has been minimized.

Copy link

@kdayns kdayns commented Oct 10, 2017

yes, just rechecked.
I also did pull on kll repo too, do I have to delete anything there too?
git status shows nothing to delete.

@einalex

This comment has been minimized.

Copy link

@einalex einalex commented Oct 10, 2017

no.
did you reflash both sides separately?

@kdayns

This comment has been minimized.

Copy link

@kdayns kdayns commented Oct 10, 2017

reflashing both sides helps, now it is ok.
didn't know internal protocol have changed, sorry.

@dfaught

This comment has been minimized.

Copy link

@dfaught dfaught commented Oct 10, 2017

Looks good to me. Nice work, @haata.

Edit: Still nice work, but i think i've spotted an issue. it appears as though the shift key on whichever side is the slave does not function. notice my lack of appropriate capitalization unless the cap is meant to be created by using the right shift key. if i switch to use the right side as the slave the problem is reversed. @einalex, are you experiencing any discrepancies between your halves/

i also seem to have a problem with using macros as triggers, but i'll open a separate issue for that.

@haata

This comment has been minimized.

Copy link
Member

@haata haata commented Oct 10, 2017

@LaikeSF Interesting, I think I know what's causing this (it's not actually your KLL files I believe).
Would you mind opening up a separate issue for that problem? Make sure to include your OS, and if you're running in a docker container, VM, etc.

Basically, I'm trying to find the /tmp directory automatically using Python, but it seems to be failing.

@metsie2912

This comment has been minimized.

Copy link

@metsie2912 metsie2912 commented Oct 11, 2017

Just FYI, I still have the same issue as mentioned in my last post, but only if I update them daisy chained. If I update them separately, I don't have these issues.

@haata

This comment has been minimized.

Copy link
Member

@haata haata commented Oct 11, 2017

@metsie2912 can you flash both sides? I've changed the relative index on both nodes, so once you flash both, then chain them together it should work ok.

@typorian

This comment has been minimized.

Copy link

@typorian typorian commented Oct 14, 2017

Apparently I got lucky and did not notice parts of this issue because I flash both halves as a general rule. Maybe it should be stated more prominently that this is generally a good idea.

@haata

This comment has been minimized.

Copy link
Member

@haata haata commented Oct 14, 2017

I really should have a warning of some sort about needing to upgrade the other side (totally doable).
Perhaps inside the cli (or even better on the LCD).

@dfaught

This comment has been minimized.

Copy link

@dfaught dfaught commented Oct 23, 2017

Still the same behavior for me after the latest update. Slave side shift key does not work. I've flashed both sides independently and test both as master/slave.

@kll

This comment has been minimized.

Copy link
Author

@kll kll commented Nov 1, 2017

I finally got back around to testing this out because my new K-Type is being delivered today and I would prefer to have my Infinity Ergodox run the same firmware. I can successfully compile and flash the latest from controller and kll repositories and everything seems to work correctly with the default layout. However I immediately hit a compile error that I believe is the same as what is mentioned in #218 when I started working on my custom layout. In my particular layout the error goes away if I don't map U"Equals" to something else, but it isn't as simple as that because when I started fresh and only added that same line to mdergo1Overlay.kll it still compiled, so it is that in combination with something else in my layout. I'll try to narrow it down better when I have more time later.
@haata Would you prefer to keep the discussion in this issue or in #218?

@rgkirch

This comment has been minimized.

Copy link

@rgkirch rgkirch commented Feb 12, 2018

I just downloaded and flashed a configuration from the online config builder and I had the same issue that the first comment describes. After flashing just the left hand, the left hand columns were shifted one to the right. I have the left hand plugged into the pc and the right is connected to the left. I started the config by pasting the json for my old layout and then just added volume controls to some unbound keys. The old layout is from October 2017.

@hamaker

This comment has been minimized.

Copy link

@hamaker hamaker commented Nov 29, 2018

Not sure if this is related to what I'm seeing, but I was just now trying to using the web configurator to program my inf. ergodox for mouse keys, and was getting wrong mouse button events on my system. This is what I was seeing:

configurator button 2 gave me event button 3
configurator button 3 gave me event button 2
configurator button 9 gave me event button 13
configurator button 8 gave me event button 12
...etc
configurator button 4 gave me event button 8

Thought to let you know, if there is any testing I can do, just let me know.

@haata

This comment has been minimized.

Copy link
Member

@haata haata commented Dec 3, 2018

@hamaker Which OS are you running?

@hamaker

This comment has been minimized.

Copy link

@hamaker hamaker commented Dec 3, 2018

Gentoo linux 4.18.16

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
You can’t perform that action at this time.