zsa / reactor

Reactor is the firmware generator part of Fusion
MIT License
58 stars 28 forks source link

Won't build #2

Closed lalomartins closed 8 years ago

lalomartins commented 8 years ago

Well, this is a bit of a problem :smile_cat: I can create a layout with fusion and reactor, but it won't build. Or I can use the Massdrop UI, but then I don't have the mouse emulation functionality. What's a geek to do?

(Use the default map, I guess, but I'm a Dvorak guy, and the software-based dvorak map puts [] in an utterly unusable place.)

Here's the build output; what it looks like to me is that the template in reactor is out of date with the firmware api.

-------- begin --------
avr-gcc (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Size before:
   text    data     bss     dec     hex filename
  23374      58     195   23627    5c4b ergodox_ez.elf

mkdir -p obj_ergodox_ez/keymaps
Compiling C: keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.c
avr-gcc -c -mmcu=atmega32u4 -gdwarf-2 -DF_CPU=16000000UL -DINTERRUPT_CONTROL_ENDPOINT -DBOOTLOADER_SIZE=512 -DF_USB=16000000UL -DARCH=ARCH_AVR8 -DUSB_DEVICE_ONLY -DUSE_FLASH_DESCRIPTORS -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" -DFIXED_CONTROL_ENDPOINT_SIZE=8  -DFIXED_NUM_CONFIGURATIONS=1 -DPROTOCOL_LUFA -DBOOTMAGIC_ENABLE -DMOUSEKEY_ENABLE -DMOUSE_ENABLE -DEXTRAKEY_ENABLE -DCONSOLE_ENABLE -DCOMMAND_ENABLE -DVERSION=6485c7d -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fdata-sections -fno-inline-small-functions -fpack-struct -fshort-enums -fno-strict-aliasing -Wall -Wstrict-prototypes -Wa,-adhlns=obj_ergodox_ez/keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.lst -I. -I../.. -I../../tmk_core -I../../quantum -I../../tmk_core/protocol/lufa -I../../tmk_core/protocol/lufa/LUFA-git -I../../tmk_core/common -std=gnu99 -include config.h -MMD -MP -MF .dep/obj_ergodox_ez_keymaps_keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.o.d  keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.c -o obj_ergodox_ez/keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.o 
keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.c:11:536: error: macro "TO" requires 2 arguments, but only 1 given
 [0] = KEYMAP(KC_GRAVE,KC_1,KC_2,KC_3,KC_4,KC_5,KC_LEFT,KC_DELETE,KC_QUOTE,KC_COMMA,KC_DOT,KC_P,KC_Y,TO(1),KC_BSPACE,KC_A,KC_O,KC_E,KC_U,KC_I,KC_LSHIFT,KC_SCOLON,KC_Q,KC_J,KC_K,KC_X,DF(1),KC_LCTRL,KC_LGUI,KC_LALT,KC_LEFT,KC_RIGHT,KC_MENU,KC_LGUI,KC_HOME,KC_SPACE,KC_BSPACE,KC_END,KC_RIGHT,KC_6,KC_7,KC_8,KC_9,KC_0,KC_BSLASH,TO(1),KC_F,KC_G,KC_C,KC_R,KC_L,KC_SLASH,KC_D,KC_H,KC_T,KC_N,KC_S,KC_MINUS,KC_RALT,KC_B,KC_M,KC_W,KC_V,KC_Z,KC_RSHIFT,KC_UP,KC_DOWN,KC_LBRACKET,KC_RBRACKET,MO(1),KC_LALT,KC_ESCAPE,KC_PGUP,KC_PGDOWN,KC_TAB,KC_ENTER),
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ^
keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.c:11:536: error: macro "TO" requires 2 arguments, but only 1 given
In file included from keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.c:1:0:
keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.c:11:101: error: ‘TO’ undeclared here (not in a function)
 [0] = KEYMAP(KC_GRAVE,KC_1,KC_2,KC_3,KC_4,KC_5,KC_LEFT,KC_DELETE,KC_QUOTE,KC_COMMA,KC_DOT,KC_P,KC_Y,TO(1),KC_BSPACE,KC_A,KC_O,KC_E,KC_U,KC_I,KC_LSHIFT,KC_SCOLON,KC_Q,KC_J,KC_K,KC_X,DF(1),KC_LCTRL,KC_LGUI,KC_LALT,KC_LEFT,KC_RIGHT,KC_MENU,KC_LGUI,KC_HOME,KC_SPACE,KC_BSPACE,KC_END,KC_RIGHT,KC_6,KC_7,KC_8,KC_9,KC_0,KC_BSLASH,TO(1),KC_F,KC_G,KC_C,KC_R,KC_L,KC_SLASH,KC_D,KC_H,KC_T,KC_N,KC_S,KC_MINUS,KC_RALT,KC_B,KC_M,KC_W,KC_V,KC_Z,KC_RSHIFT,KC_UP,KC_DOWN,KC_LBRACKET,KC_RBRACKET,MO(1),KC_LALT,KC_ESCAPE,KC_PGUP,KC_PGDOWN,KC_TAB,KC_ENTER),
                                                                                                     ^
./ergodox_ez.h:108:12: note: in definition of macro ‘KEYMAP’
     { k06, k16, KC_NO, k36, KC_NO, k56 },   \
            ^
keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.c:13:271: error: ‘KC_LEFT_BRACKET’ undeclared here (not in a function)
 [1] = KEYMAP(KC_PSCREEN,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_TRANSPARENT,KC_EXCLAIM,KC_AT,KC_LEFT_CURLY_BRACE,KC_RIGHT_CURLY_BRACE,KC_QUESTION_MARK,KC_TRANSPARENT,KC_TRANSPARENT,KC_HASH,KC_DOLLAR,KC_LEFT_PAREN,KC_RIGHT_PAREN,KC_GRAVE,KC_TRANSPARENT,KC_PERCENT,KC_CIRCUMFLEX,KC_LEFT_BRACKET,KC_RIGHT_BRACKET,KC_TILDE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_TRANSPARENT,KC_UP,KC_KP_7,KC_KP_8,KC_KP_9,KC_KP_ASTERISK,KC_F12,KC_DOWN,KC_KP_4,KC_KP_5,KC_KP_6,KC_KP_PLUS,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_KP_1,KC_KP_2,KC_KP_3,KC_KP_SLASH,KC_TRANSPARENT,KC_TRANSPARENT,KC_KP_DOT,KC_KP_0,KC_KP_EQUAL,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT),
                                                                                                                                                                                                                                                                               ^
./ergodox_ez.h:104:22: note: in definition of macro ‘KEYMAP’
     { k02, k12, k22, k32, k42, k52 },   \
                      ^
keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.c:13:287: error: ‘KC_RIGHT_BRACKET’ undeclared here (not in a function)
 [1] = KEYMAP(KC_PSCREEN,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_TRANSPARENT,KC_EXCLAIM,KC_AT,KC_LEFT_CURLY_BRACE,KC_RIGHT_CURLY_BRACE,KC_QUESTION_MARK,KC_TRANSPARENT,KC_TRANSPARENT,KC_HASH,KC_DOLLAR,KC_LEFT_PAREN,KC_RIGHT_PAREN,KC_GRAVE,KC_TRANSPARENT,KC_PERCENT,KC_CIRCUMFLEX,KC_LEFT_BRACKET,KC_RIGHT_BRACKET,KC_TILDE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_TRANSPARENT,KC_UP,KC_KP_7,KC_KP_8,KC_KP_9,KC_KP_ASTERISK,KC_F12,KC_DOWN,KC_KP_4,KC_KP_5,KC_KP_6,KC_KP_PLUS,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_KP_1,KC_KP_2,KC_KP_3,KC_KP_SLASH,KC_TRANSPARENT,KC_TRANSPARENT,KC_KP_DOT,KC_KP_0,KC_KP_EQUAL,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT),
                                                                                                                                                                                                                                                                                               ^
./ergodox_ez.h:105:22: note: in definition of macro ‘KEYMAP’
     { k03, k13, k23, k33, k43, k53 },   \
                      ^
keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.c:13:128: error: ‘KC_QUESTION_MARK’ undeclared here (not in a function)
 [1] = KEYMAP(KC_PSCREEN,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_TRANSPARENT,KC_EXCLAIM,KC_AT,KC_LEFT_CURLY_BRACE,KC_RIGHT_CURLY_BRACE,KC_QUESTION_MARK,KC_TRANSPARENT,KC_TRANSPARENT,KC_HASH,KC_DOLLAR,KC_LEFT_PAREN,KC_RIGHT_PAREN,KC_GRAVE,KC_TRANSPARENT,KC_PERCENT,KC_CIRCUMFLEX,KC_LEFT_BRACKET,KC_RIGHT_BRACKET,KC_TILDE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_TRANSPARENT,KC_UP,KC_KP_7,KC_KP_8,KC_KP_9,KC_KP_ASTERISK,KC_F12,KC_DOWN,KC_KP_4,KC_KP_5,KC_KP_6,KC_KP_PLUS,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_KP_1,KC_KP_2,KC_KP_3,KC_KP_SLASH,KC_TRANSPARENT,KC_TRANSPARENT,KC_KP_DOT,KC_KP_0,KC_KP_EQUAL,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT),
                                                                                                                                ^
./ergodox_ez.h:106:12: note: in definition of macro ‘KEYMAP’
     { k04, k14, k24, k34, k44, k54 },   \
            ^
keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.c: In function ‘matrix_init_user’:
keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.c:41:1: warning: control reaches end of non-void function [-Wreturn-type]
 };
 ^
keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.c: In function ‘matrix_scan_user’:
keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.c:65:1: warning: control reaches end of non-void function [-Wreturn-type]
 };
 ^
../../tmk_core/rules.mk:551: recipe for target 'obj_ergodox_ez/keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.o' failed
make: *** [obj_ergodox_ez/keymaps/keymap_fb5149c8-8150-4215-8b5b-9da1cc3911bc.o] Error 1
tdegrunt commented 8 years ago

This is probably because fusion's key code outputs (slightly) different keycodes (ErgodoxEZ used TMK firmware first). QMK's TO is using an additional parameter:

https://github.com/jackhumbert/qmk_firmware/blob/master/quantum/keymap_common.h#L175

Fusion isn't finished (yet), so this is one thing we need to fix.

Basically it should say TO(1,ON_PRESS). What remains is how many keys are in the [0] = KEYMAP line, it should correspond with the KEYMAP macro. Ergodox has 76 keys, so there should be 76 entries on that line.

lalomartins commented 8 years ago

Well, I really want to play with my shiny new keyboard ;-) and I have a bit more time, so I'll give this a try. If it works, I'll see if I can submit PRs.

Thanks!

lalomartins commented 8 years ago

So is it TO(x,ON_KEYPRESS), or is it TG(x)? I tried the former as you said, but then just setting TRANSPARENT on the same position of the other layer won't switch back. I solved that by putting TO(0,ON_KEYPRESS) on the other layer, but after sleeping on it I guess it was just mean to be TG?

tdegrunt commented 8 years ago

It's TG(1) indeed, I got confused. Last work has been done here by the way: https://github.com/ErgoDox-EZ/fusion-rails

lalomartins commented 8 years ago

GTK, I was confused by the two repos. Thanks!

(BTW as you probably inferred, I got mine working. Joy.)