ajmandourah / Ladispad

A custom-made 11 key macropad + 2 rotary encoders with minimal components.
GNU General Public License v3.0
38 stars 12 forks source link

Guidance on how to compile the firmware #7

Closed ashton314 closed 6 months ago

ashton314 commented 1 year ago

Hi there,

I've got the qmk CLI tool installed and everything, and I've cloned the repo and modified keymaps/default/keymap.c. How do I compile this now?

If I'm in the the qmk directory, and I run qmk compile -kb ladis -km default whatever I get this error:

# qmk compile -km default -kb ladis whatever
usage: qmk compile [-h] [-c] [-e ENV] [-j PARALLEL] [-n] [-km KEYMAP] [-kb KEYBOARD] [filename]
qmk compile: error: argument -kb/--keyboard: invalid keyboard_folder value: 'ladis'

What's the magick incantation?

ajmandourah commented 1 year ago

try copying the ladis folder into qmk/keybords folder and give it another go. should work as the error shows no ladis folder in the keyboards folder cheers

ashton314 commented 1 year ago

Thanks for the quick response!

Ok, seems to be a little happier now. New errors:

root@fefd07499341:~# qmk compile -km default -kb ladis
Ψ Compiling keymap with gmake --jobs=1 ladis:default

QMK Firmware 0.21.0
⚠ ladis: DEVICE_VER in config.h is deprecated in favor of `usb.device_version` in info.json and will be removed at a later date
⚠ ladis: MANUFACTURER in config.h is deprecated in favor of `manufacturer` in info.json and will be removed at a later date
⚠ ladis: PRODUCT in config.h is deprecated in favor of `keyboard_name` in info.json and will be removed at a later date
⚠ ladis: PRODUCT_ID in config.h is deprecated in favor of `usb.pid` in info.json and will be removed at a later date
⚠ ladis: VENDOR_ID in config.h is deprecated in favor of `usb.vid` in info.json and will be removed at a later date
☒ Invalid API data: ladis: backlight.levels: 0 is less than the minimum of 1
Making ladis with keymap default

⚠ ladis: DEVICE_VER in config.h is deprecated in favor of `usb.device_version` in info.json and will be removed at a later date
⚠ ladis: MANUFACTURER in config.h is deprecated in favor of `manufacturer` in info.json and will be removed at a later date
⚠ ladis: PRODUCT in config.h is deprecated in favor of `keyboard_name` in info.json and will be removed at a later date
⚠ ladis: PRODUCT_ID in config.h is deprecated in favor of `usb.pid` in info.json and will be removed at a later date
⚠ ladis: VENDOR_ID in config.h is deprecated in favor of `usb.vid` in info.json and will be removed at a later date
☒ Invalid API data: ladis: backlight.levels: 0 is less than the minimum of 1

 *                                                                                                     [ERRORS]

builddefs/build_keyboard.mk:196: *** Platform not defined.  Stop.
Make finished with errors
gmake: *** [Makefile:392: ladis:default] Error 1
root@fefd07499341:~# qmk compile -km default -kb ladis
Ψ Compiling keymap with gmake --jobs=1 ladis:default

QMK Firmware 0.21.0
⚠ ladis: DEVICE_VER in config.h is deprecated in favor of `usb.device_version` in info.json and will be removed at a later date
⚠ ladis: MANUFACTURER in config.h is deprecated in favor of `manufacturer` in info.json and will be removed at a later date
⚠ ladis: PRODUCT in config.h is deprecated in favor of `keyboard_name` in info.json and will be removed at a later date
⚠ ladis: PRODUCT_ID in config.h is deprecated in favor of `usb.pid` in info.json and will be removed at a later date
⚠ ladis: VENDOR_ID in config.h is deprecated in favor of `usb.vid` in info.json and will be removed at a later date
☒ ladis: No LAYOUTs defined! Need at least one layout defined in info.json.
Making ladis with keymap default

⚠ ladis: DEVICE_VER in config.h is deprecated in favor of `usb.device_version` in info.json and will be removed at a later date
⚠ ladis: MANUFACTURER in config.h is deprecated in favor of `manufacturer` in info.json and will be removed at a later date
⚠ ladis: PRODUCT in config.h is deprecated in favor of `keyboard_name` in info.json and will be removed at a later date
⚠ ladis: PRODUCT_ID in config.h is deprecated in favor of `usb.pid` in info.json and will be removed at a later date
⚠ ladis: VENDOR_ID in config.h is deprecated in favor of `usb.vid` in info.json and will be removed at a later date
☒ ladis: No LAYOUTs defined! Need at least one layout defined in info.json.

 * No bootloader specified. Please set an appropriate bootloader in your rules.mk or info.json.        [ERRORS]

platforms/avr/bootloader.mk:144: *** Invalid BOOTLOADER.  Stop.
gmake: *** [Makefile:392: ladis:default] Error 1
Make finished with errors

I changed this line in config.h:

#define BACKLIGHT_LEVELS 1

to get rid of the first error. Not sure what to do with the second error.

ashton314 commented 1 year ago

What's the name of the bootloader?

ajmandourah commented 1 year ago

try creating a file named info.json in the ladis folder and paste the following in it.

{
    "keyboard_name": "LadisPad",
    "manufacturer": "Ladis",
    "usb": {
        "pid": "0x6060",
        "vid": "0xFEED",
        "device_version": "0.0.1"
    },
    "bootloader": "atmel-dfu"
}

try compiling it. sorry I don't have the pad to test it out right now

ashton314 commented 1 year ago

Next error:

Compiling: keyboards/ladis/ladis.c                                                                 In file included from <command-line>:0:0:
./keyboards/ladis/config.h:4:27: fatal error: config_common.h: No such file or directory
compilation terminated.
 [ERRORS]
 |
 |
 |
gmake[1]: *** [builddefs/common_rules.mk:361: .build/obj_ladis_default/keyboards/ladis/ladis.o] Error 1
Make finished with errors
gmake: *** [Makefile:392: ladis:default] Error 1

Also get this complaint earlier on:

☒ ladis: No LAYOUTs defined! Need at least one layout defined in info.json.

I hope this doesn't come across as rude, but, it is seriously difficult to build this firmware, especially for someone like me who's new to the homemade keyboard scene. :-/

Have you considered making this work with the online QMK configurator? Or at least a Dockerfile or something that can reliably build the firmware for the board? What does your environment look like? Are you using the most recent version of QMK?

ashton314 commented 1 year ago

Ok, I got it! I might open a PR later if I get the time. You can see what I had to do to get it working here: https://github.com/ashton314/Ladispad

I hope my comments didn't come across as negative—I was just a little frustrated. 🙃 I really appreciate your help with this.

ajmandourah commented 1 year ago

Thats great. And i get yoyr frustration. The issue is QMK has chabged a lot since i madd the keyboard. As you saw most issue was because of stuff they changed frim the actual c files to a json file.

Thr same issue with via.

It would be grest if you mafe a pr as i dont have the pad to test it out