Skip Navigation

Having trouble with QMK firmware

I'm having trouble figuring out what's wrong with my files for compiling. the initial errors are pointing to the .h and corresponding part in the keymap.c files but it seems fine to me? i haven't even managed to get to figuring out the joystick part which is where i thought i would start having a bunch of trouble

Unsure the best way to show files but I don't think copy pasting them into the body of this post would be best so I've uploaded here: https://drive.google.com/drive/folders/1WKobV73ZdovPCUUcp0jLBLaX8L6IFEmp?usp=drive_link

The txt file shows the error text I get when trying to compile

Thank you

11

You're viewing part of a thread.

Show Context
11 comments
  • your compilation errors now just seem to be because of mismatched braces. you have an extra closing brace in keymap.c before the xPos = analogReadPin(B4); as well as after the intended close of the matrix_scan_user method.

    • I've tried to rewrite the joystick code and now am getting different errors:

      Compiling: quantum/keymap_introspection.c                                                           [OK]
      Compiling: quantum/command.c                                                                        [OK]
      Compiling: tmk_core/protocol/host.c                                                                tmk_core/protocol/host.c: In function 'host_joystick_send':
      tmk_core/protocol/host.c:171:10: error: 'report_joystick_t' {aka 'struct '} has no member named 'axes'
               .axes =
                ^~~~
      tmk_core/protocol/host.c:172:13: error: extra brace group at end of initializer
                   {
                   ^
      tmk_core/protocol/host.c:172:13: note: (near initialization for 'report')
      tmk_core/protocol/host.c:172:13: error: excess elements in struct initializer [-Werror]
      tmk_core/protocol/host.c:172:13: note: (near initialization for 'report')
      cc1: all warnings being treated as errors
       [ERRORS]
       | 
       | 
       | 
      gmake[1]: *** [builddefs/common_rules.mk:361: .build/obj_eiris_default/protocol/host.o] Error 1
      gmake: *** [Makefile:392: eiris:default] Error 1
      Make finished with errors
      

      Also, I'm not sure if I need "#include "config_common.h" in my config.h file? I see it in some other config.h files. When I have that in my config.h file, it gives a fatal error: No such file or directory

      • i don't think you need to include config_common.h, that's just a convention for when there are multiple revisions of a keyboard but most of the stuff is common.

        as for the other code, try removing things until you get it to compile and start adding it back. it looks like the problem could be happening inside some macro expansion or something. i think it would help to format your code a bit to make it easier to follow, there's not really a need for the switch statement with only one case, etc. use consistent indentation, and such.

        • so i had a crack at fixing it and got it to compile, obviously unable to test it functionally. I've pushed the code here.

          I noticed you're not actually using the joystick features since you're reading the analog pins manually (btw, you should read them once per scan instead of in every if statement). so i just removed all the joystick code and the JOYSTICK_ENABLE = yes. i'm not sure what exactly you're trying to do but what I've got builds and doesn't remove any of the functional code, so see how you go from there. I don't know much about using the joystick feature in QMK so I can't really advise on how to use it instead of what you're doing, but as it stands you seem to not be utilising it anyway.

          Good luck. if you're stuck, maybe try going to the QMK discord and explaining what you are trying to achieve and see what people say there. Be careful not to assume the implementation and ask the wrong question, describe what you want to achieve at a high level and see what they advise to implement it (see the XY problem)

11 comments