esrille / new-keyboard Goto Github PK
View Code? Open in Web Editor NEWThe Esrille New Keyboard
Home Page: https://www.esrille.com/keyboard/
The Esrille New Keyboard
Home Page: https://www.esrille.com/keyboard/
The current firmware postpones shift key up events until all the other keys are released. This behavior is only required with several Japanese Kana keyboard layouts. The next firmware should make this optional.
The following code path will be selectable by the keyboard configuration:
new-keyboard/firmware/src/KeyboardCommon.c
Lines 949 to 953 in bbebf20
Hi bro, I'd like to swap some keys position on this keyboard, (ex : cmd swap with option) is it possible to have this done without programming?
It would be nice to have an option to invert numbers and symbols on the number row, like on the French layout, Spanish layout, some QWERTZ layouts or the Programmer Dvorak layout.
This would mostly be useful for programmers, people using a Compose key to input special characters or to add hardware support for Programmer Dvorak.
I think this means inverting the shift modifier when a number row key is pressed.
The main issue is with the behavior of the Caps Lock key:
[
outputs 7. This is useful when you want to input multiple numbers in a row.$
, *
, !
, etc.I'm not sure which approach would be the best here.
What do you think about this possible feature?
At 37b1b03, there are several issues we need to address to make the new keyboard correctly functioning on OS X.
OS X seems to assume that the USB logical maximum values are always signed.
Therefore, in the class specific descriptor,
0x25, 0xFF, // LOGICAL_MAXIMUM (255)
doesn't work on OS X while both Windows and Linux accept it. The solution is to use a word value instead of a byte value:
0x26, DESC_CONFIG_WORD(0xFF), // LOGICAL_MAXIMUM (255)
The order of keycodes in array fields has no significance in OS X.
This is what the HID specification says and OS X follows. Note both Windows and Linux preserve the order and we can send a Romaji sequence in a single array, which doesn't work on OS X.
ことえり does not convert "xn" to "ん" by default.
かな(KEY_LANG1) and 英数(KEY_LANG2) should be used instead of F13 and F14.
Hello again,
I had to download PIC18F Legacy Peripheral Libraries v1.0 - MAC OS (http://www.microchip.com/mymicrochip/filehandler.aspx?ddocname=en574976) because it gave an error along the lines of peripheral library support is missing
(google tells me that it is no longer packaged with XC8 compiler). Now it is failing with
CLEAN SUCCESSFUL (total time: 55ms)
make -f nbproject/Makefile-Esrille_New_Keyboard.mk SUBPROJECTS= .build-conf
make[1]: Entering directory '/Users/larver/nisse/new-keyboard/firmware/third_party/mla_v2013_12_20/apps/usb/device/hid_keyboard/firmware/MPLAB.X'
make -f nbproject/Makefile-Esrille_New_Keyboard.mk dist/Esrille_New_Keyboard/production/MPLAB.X.production.hex
make[2]: Entering directory '/Users/larver/nisse/new-keyboard/firmware/third_party/mla_v2013_12_20/apps/usb/device/hid_keyboard/firmware/MPLAB.X'
"/Applications/microchip/xc8/v1.35/bin/xc8" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=default,+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/Esrille_New_Keyboard/production/_ext/770305540/system.p1 ../src/system_config/esrille_new_keyboard/system.c
"/Applications/microchip/xc8/v1.35/bin/xc8" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=default,+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/Esrille_New_Keyboard/production/_ext/1360937237/app_device_keyboard.p1 ../src/app_device_keyboard.c
"/Applications/microchip/xc8/v1.35/bin/xc8" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=default,+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/Esrille_New_Keyboard/production/_ext/1360937237/app_led_usb_status.p1 ../src/app_led_usb_status.c
"/Applications/microchip/xc8/v1.35/bin/xc8" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=default,+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/Esrille_New_Keyboard/production/_ext/1360937237/main.p1 ../src/main.c
"/Applications/microchip/xc8/v1.35/bin/xc8" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=default,+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/Esrille_New_Keyboard/production/_ext/1360937237/usb_descriptors.p1 ../src/usb_descriptors.c
"/Applications/microchip/xc8/v1.35/bin/xc8" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=default,+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/Esrille_New_Keyboard/production/_ext/1360937237/app_device_mouse.p1 ../src/app_device_mouse.c
"/Applications/microchip/xc8/v1.35/bin/xc8" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=default,+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/Esrille_New_Keyboard/production/_ext/978351403/buttons.p1 ../../../../../../bsp/esrille_new_keyboard/buttons.c
"/Applications/microchip/xc8/v1.35/bin/xc8" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=default,+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/Esrille_New_Keyboard/production/_ext/978351403/leds.p1 ../../../../../../bsp/esrille_new_keyboard/leds.c
"/Applications/microchip/xc8/v1.35/bin/xc8" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=default,+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/Esrille_New_Keyboard/production/_ext/838585624/usb_device.p1 ../../../../../../framework/usb/src/usb_device.c
"/Applications/microchip/xc8/v1.35/bin/xc8" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=default,+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/Esrille_New_Keyboard/production/_ext/838585624/usb_device_hid.p1 ../../../../../../framework/usb/src/usb_device_hid.c
"/Applications/microchip/xc8/v1.35/bin/xc8" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=default,+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/Esrille_New_Keyboard/production/_ext/309221532/KeyboardCommon.p1 ../../../../../../../../src/KeyboardCommon.c
"/Applications/microchip/xc8/v1.35/bin/xc8" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=default,+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/Esrille_New_Keyboard/production/_ext/309221532/KeyboardJP.p1 ../../../../../../../../src/KeyboardJP.c
"/Applications/microchip/xc8/v1.35/bin/xc8" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=default,+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/Esrille_New_Keyboard/production/_ext/309221532/KeyboardUS.p1 ../../../../../../../../src/KeyboardUS.c
"/Applications/microchip/xc8/v1.35/bin/xc8" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=default,+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/Esrille_New_Keyboard/production/_ext/309221532/Mouse.p1 ../../../../../../../../src/Mouse.c
../../../../../../../../src/KeyboardJP.c:397: warning: (1404) unsupported: The Read_b_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/KeyboardJP.c:401: warning: (1404) unsupported: The Read_b_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/KeyboardJP.c:405: warning: (1404) unsupported: The Read_b_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/KeyboardJP.c:420: warning: (1404) unsupported: The Busy_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/KeyboardJP.c:434: warning: (1404) unsupported: The Busy_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/KeyboardJP.c:448: warning: (1404) unsupported: The Busy_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/KeyboardCommon.c:181: warning: (1404) unsupported: The Read_b_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/KeyboardCommon.c:184: warning: (1404) unsupported: The Read_b_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/KeyboardCommon.c:187: warning: (1404) unsupported: The Read_b_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/KeyboardCommon.c:190: warning: (1404) unsupported: The Read_b_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/KeyboardCommon.c:207: warning: (1404) unsupported: The Busy_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/KeyboardCommon.c:221: warning: (1404) unsupported: The Busy_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/KeyboardCommon.c:235: warning: (1404) unsupported: The Busy_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/KeyboardCommon.c:249: warning: (1404) unsupported: The Busy_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/KeyboardUS.c:116: warning: (1404) unsupported: The Read_b_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/KeyboardUS.c:131: warning: (1404) unsupported: The Busy_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/Mouse.c:65: warning: (1404) unsupported: The Read_b_eep routine is no longer supported. Please use the MPLAB X MCC.
../../../../../../../../src/Mouse.c:83: warning: (1404) unsupported: The Busy_eep routine is no longer supported. Please use the MPLAB X MCC.
"/Applications/microchip/xc8/v1.35/bin/xc8" --chip=18F4550 -G -mdist/Esrille_New_Keyboard/production/MPLAB.X.production.map --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=default,+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" --memorysummary dist/Esrille_New_Keyboard/production/memoryfile.xml -odist/Esrille_New_Keyboard/production/MPLAB.X.production.elf build/Esrille_New_Keyboard/production/_ext/770305540/system.p1 build/Esrille_New_Keyboard/production/_ext/1360937237/app_device_keyboard.p1 build/Esrille_New_Keyboard/production/_ext/1360937237/app_led_usb_status.p1 build/Esrille_New_Keyboard/production/_ext/1360937237/main.p1 build/Esrille_New_Keyboard/production/_ext/1360937237/usb_descriptors.p1 build/Esrille_New_Keyboard/production/_ext/1360937237/app_device_mouse.p1 build/Esrille_New_Keyboard/production/_ext/978351403/buttons.p1 build/Esrille_New_Keyboard/production/_ext/978351403/leds.p1 build/Esrille_New_Keyboard/production/_ext/838585624/usb_device.p1 build/Esrille_New_Keyboard/production/_ext/838585624/usb_device_hid.p1 build/Esrille_New_Keyboard/production/_ext/309221532/KeyboardCommon.p1 build/Esrille_New_Keyboard/production/_ext/309221532/KeyboardJP.p1 build/Esrille_New_Keyboard/production/_ext/309221532/KeyboardUS.p1 build/Esrille_New_Keyboard/production/_ext/309221532/Mouse.p1
:: advisory: (1233) Employing 18F4550 errata work-arounds:
:: advisory: (1234) * Corrupted fast interrupt shadow registers
:: warning: (1273) Omniscient Code Generation not available in Free mode
Microchip MPLAB XC8 C Compiler (Free Mode) V1.35
Build date: Jul 7 2015
Part Support Version: 1.35 (B)
Copyright (C) 2015 Microchip Technology Inc.
License type: Node Configuration
/Applications/microchip/xc8/v1.35/include/pic18f4550.h:9211: error: (1098) conflicting declarations for variable "_INTCONbits" (/Applications/microchip/xc8/v1.35/include/pic18f4550.h:8963)
make[2]: *** [dist/Esrille_New_Keyboard/production/MPLAB.X.production.hex] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
(908) exit status = 1
nbproject/Makefile-Esrille_New_Keyboard.mk:327: recipe for target 'dist/Esrille_New_Keyboard/production/MPLAB.X.production.hex' failed
make[2]: Leaving directory '/Users/larver/nisse/new-keyboard/firmware/third_party/mla_v2013_12_20/apps/usb/device/hid_keyboard/firmware/MPLAB.X'
nbproject/Makefile-Esrille_New_Keyboard.mk:78: recipe for target '.build-conf' failed
make[1]: Leaving directory '/Users/larver/nisse/new-keyboard/firmware/third_party/mla_v2013_12_20/apps/usb/device/hid_keyboard/firmware/MPLAB.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
BUILD FAILED (exit value 2, total time: 3s)
The error is about a conflicting definition, but that's from the official header file /Applications/microchip/xc8/v1.35/include/pic18f4550.h:9211
. Are you using a different version of XC8 or a different peripheral library? If so, how do I obtain it?
I am on Mac OSX.
Hello I am trying to build my own firmware however the build keeps failing. I am using MPLAB X IDE v5.5 and XC8 v1.34. Is there something I am doing wrong?
make -f nbproject/Makefile-PIC18F4550_NISSE.mk SUBPROJECTS= .build-conf
make[1]: Entering directory 'C:/Users/JJ/Downloads/new-keyboard-master1/new-keyboard-master/firmware/third_party/mla_v2013_12_20/apps/usb/device/hid_keyboard/firmware/MPLAB.X'
make -f nbproject/Makefile-PIC18F4550_NISSE.mk dist/PIC18F4550_NISSE/production/MPLAB.X.production.hex
make[2]: Entering directory 'C:/Users/JJ/Downloads/new-keyboard-master1/new-keyboard-master/firmware/third_party/mla_v2013_12_20/apps/usb/device/hid_keyboard/firmware/MPLAB.X'
"C:\Program Files (x86)\Microchip\xc8\v1.34\bin\xc8.exe" --pass1 --chip=18F4550 -Q -G --double=24 --float=24 --emi=wordwrite --rom=default,-0-17FF,-1806-1807,-1826-1827 --opt=+asm,-asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -DKANA_MAX=KANA_X6004 -P -N255 -I"../../../../../../../../src" -I"../src" -I"../../../../../../framework" -I"../../../../../../bsp/esrille_new_keyboard" -I"../src/system_config/esrille_new_keyboard" --warn=0 --asmlist -DXPRJ_PIC18F4550_NISSE=PIC18F4550_NISSE --summary=default,-psect,-class,+mem,-hex,-file --codeoffset=0x1800 --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/PIC18F4550_NISSE/production/_ext/838585624/usb_device.p1 ../../../../../../framework/usb/src/usb_device.c
make[2]: *** [build/PIC18F4550_NISSE/production/_ext/838585624/usb_device.p1] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
(908) exit status = 1
nbproject/Makefile-PIC18F4550_NISSE.mk:251: recipe for target 'build/PIC18F4550_NISSE/production/_ext/838585624/usb_device.p1' failed
make[2]: Leaving directory 'C:/Users/JJ/Downloads/new-keyboard-master1/new-keyboard-master/firmware/third_party/mla_v2013_12_20/apps/usb/device/hid_keyboard/firmware/MPLAB.X'
nbproject/Makefile-PIC18F4550_NISSE.mk:91: recipe for target '.build-conf' failed
make[1]: Leaving directory 'C:/Users/JJ/Downloads/new-keyboard-master1/new-keyboard-master/firmware/third_party/mla_v2013_12_20/apps/usb/device/hid_keyboard/firmware/MPLAB.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
BUILD FAILED (exit value 2, total time: 962ms)
Hi, I would like to change the FN layout. I've downloaded the firmware, and the IDE/compiler shown on the website F&Q. However, it is still unclear to me how I can change the layout and save it to the keyboard.
Is there more detailed instruction available that I can follow? Thank you so much!
Steps to reproduce (on Mac OSX Yosemite):
Output:
Starting /Users/larver/nisse/new-keyboard/firmware/third_party/mla_v2013_12_20/apps/usb/device/bootloaders/utilities/build-HIDBootloader-Desktop_Qt_5_5_1_clang_64bit-Debug/Bootloader/mac/HIDBootloader.app/Contents/MacOS/HIDBootloader...
2015-10-31 23:44:39.187 HIDBootloader[735:5914] An uncaught exception was raised
2015-10-31 23:44:39.187 HIDBootloader[735:5914] -[NSTaggedPointerString getCharacters:range:]: Range {0, 32} out of bounds; string length 3
2015-10-31 23:44:39.187 HIDBootloader[735:5914] (
0 CoreFoundation 0x00007fff921b303c __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00007fff8937376e objc_exception_throw + 43
2 CoreFoundation 0x00007fff921b2eed +[NSException raise:format:] + 205
3 CoreFoundation 0x00007fff9215ab97 -[NSTaggedPointerString getCharacters:range:] + 263
4 CoreFoundation 0x00007fff920875b6 __CFStringEncodeByteStream + 3638
5 CoreFoundation 0x00007fff92062a6b CFStringGetBytes + 795
6 HIDBootloader 0x000000010d141620 get_string_property_utf8 + 160
7 HIDBootloader 0x000000010d13fcd9 make_path + 73
8 HIDBootloader 0x000000010d13f9fb hid_enumerate + 587
9 HIDBootloader 0x000000010d13b5c5 _ZN4Comm7PollUSBEv + 37
10 HIDBootloader 0x000000010d12c104 _ZN10MainWindowC2EP7QWidget + 3444
11 HIDBootloader 0x000000010d12d7fd _ZN10MainWindowC1EP7QWidget + 29
12 HIDBootloader 0x000000010d13aa0f main + 223
13 HIDBootloader 0x000000010d129984 start + 52
)
2015-10-31 23:44:39.188 HIDBootloader[735:5914] *** Terminating app due to uncaught exception 'NSRangeException', reason: '-[NSTaggedPointerString getCharacters:range:]: Range {0, 32} out of bounds; string length 3'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff921b303c __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00007fff8937376e objc_exception_throw + 43
2 CoreFoundation 0x00007fff921b2eed +[NSException raise:format:] + 205
3 CoreFoundation 0x00007fff9215ab97 -[NSTaggedPointerString getCharacters:range:] + 263
4 CoreFoundation 0x00007fff920875b6 __CFStringEncodeByteStream + 3638
5 CoreFoundation 0x00007fff92062a6b CFStringGetBytes + 795
6 HIDBootloader 0x000000010d141620 get_string_property_utf8 + 160
7 HIDBootloader 0x000000010d13fcd9 make_path + 73
8 HIDBootloader 0x000000010d13f9fb hid_enumerate + 587
9 HIDBootloader 0x000000010d13b5c5 _ZN4Comm7PollUSBEv + 37
10 HIDBootloader 0x000000010d12c104 _ZN10MainWindowC2EP7QWidget + 3444
11 HIDBootloader 0x000000010d12d7fd _ZN10MainWindowC1EP7QWidget + 29
12 HIDBootloader 0x000000010d13aa0f main + 223
13 HIDBootloader 0x000000010d129984 start + 52
)
libc++abi.dylib: terminating with uncaught exception of type NSException
The program has unexpectedly finished.
/Users/larver/nisse/new-keyboard/firmware/third_party/mla_v2013_12_20/apps/usb/device/bootloaders/utilities/build-HIDBootloader-Desktop_Qt_5_5_1_clang_64bit-Debug/Bootloader/mac/HIDBootloader.app/Contents/MacOS/HIDBootloader crashed
My NISSE's FN-F1 output is:
esrille nisse
rev. 5
ver. 0.17
copyright 2013-2015 esrille inc.
f2 pc
f3 us
f4 roma
f5 d0
f6 c
f7 ms
f8 c-c
f9 off
Hello this is Linus (recent purchaser of the Nisse keyboard).
I am assuming that the line
__EEPROM_DATA(BASE_QWERTY, KANA_ROMAJI, OS_PC, 1 /* delay */, 0 /* mod */, LED_DEFAULT, IME_MS, 0 /* mouse */);
(found in https://github.com/esrille/new-keyboard/blob/master/firmware/src/KeyboardCommon.c#L34) sets the default initial EEPROM state of the keyboard.
Am I correct?
Could you please document what "delay" and "mod" above means?
I am in the process of writing my own custom layout by modifying the firmware (I am going to modify the unused BASE_COLEMAK
layout) and wanted to know more about what this __EEPROM_DATA
does.
Thanks.
First, I'd like to thank you for the great keyboard and firmware.
The steps to build the project described in the FAQ are very clear, but it would be nice if that process was automated. What do you think?
Since the source code is hosted on a public repository, you can use GitHub Actions or Travis CI for free.
This would allow anyone cloning the repository to build their changes without having to install MPLAB X and XC8, automatically check if every firmware can be built when pushing code or creating a pull request, or automate the release process if you wish so.
I already have a working GitHub Action here for example, which builds firmware versions 1.09 / 0.27 on push and PR on all branches (but can be restricted to master only) and generates a draft release on GitHub with the built firmware files when creating a Git tag. The result is here (see the "Artifacts" tab for the generated firmware files). The generated files are exactly the same as the ones available for download on your website.
It looks like eeprom_read() always returns 0xff (I researched a bit and this is the default return value if things are not set right). I tried setting
__EEPROM_DATA(BASE_QWERTY, KANA_ROMAJI, OS_PC, 1 /* delay */, 0 /* mod */, LED_DEFAULT, IME_MS, 0 /* mouse */);
to
__EEPROM_DATA(BASE_DVORAK, KANA_ROMAJI, OS_PC, 1 /* delay */, 0 /* mod */, LED_DEFAULT, IME_MS, 0 /* mouse */);
and I get
esrille nisse
rev. 5
ver. 0.17
copyright 2013-2015 esrille inc.
f2 pc
f3 us
f4 roma
f5 d0
f6 c
f7 ms
f8 c-c
f9 off
where f3 us
should be f3 us-d
. I.e., in KeyboardUS.c
, the if
block in
mode = eeprom_read(EEPROM_BASE);
if (BASE_MAX < mode)
mode = 0;
is somehow evaluating and setting it back to 0 (BASE_QWERTY).
This is not a serious issue because the FN+F3 command (switchBase()
) works fine.
I've actually done a workaround, which is to simply change initKeyboardBase()
from
void initKeyboardBase(void)
{
mode = eeprom_read(EEPROM_BASE);
if (BASE_MAX < mode)
mode = 0;
}
to
void initKeyboardBase(void)
{
mode = BASE_DVORAK;
}
. I'm on Mac, using the newer MLA as stated here #7 (comment) .
I also noticed that we define static uint8_t mode;
twice, once in KeyboardUS.c
and also in KeyboardJP.c
. (I just thought it was weird).
For sanity purposes I did diffs against the various .hex
produced files, and they look fine; e.g., the EEPROM data part looks like
... (truncated)
:080000000100000100040000F2
^ ^ ^
... (truncated)
where the bits marked ^
correspond neatly to the __EEPROM_DATA macro declaration
__EEPROM_DATA(BASE_DVORAK, KANA_ROMAJI, OS_PC, 1 /* delay */, 0 /* mod */, LED_DEFAULT, IME_MS, 0 /* mouse */);
(BASE_DVORAK is 1, delay is 1, and LED_DEFAULT is 4).
Thoughts?
From initial testing, it appears that it is currently not possible to have a key send modifier keys togother with regular keys. For example, I'd like to have a key that sends ~/ (KEY_LEFTSHIFT + KEY_GRAVE_ACCENT, KEY_SLASH) but
emitKey(KEY_LEFTSHIFT)
emitKey(KEY_GRAVE_ACCENT)
emitKey(KEY_SLASH)
does not work. The current default layouts for the vanilla FN layer have some "mini" macros like CTRL+C but it seems to apply the modifier key to all keys (If I put those three keys in an FN layer, then I get ~?
instead of ~/
).
I think this feature could benefit existing macros like FN-F1 that could really use some SHIFT-layer keys.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.