Ladispad icon indicating copy to clipboard operation
Ladispad copied to clipboard

Guidance on how to compile the firmware

Open ashton314 opened this issue 1 year ago • 7 comments

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?

ashton314 avatar May 31 '23 16:05 ashton314

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

ajmandourah avatar May 31 '23 17:05 ajmandourah

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 avatar May 31 '23 17:05 ashton314

What's the name of the bootloader?

ashton314 avatar May 31 '23 19:05 ashton314

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

ajmandourah avatar Jun 01 '23 05:06 ajmandourah

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 avatar Jun 01 '23 21:06 ashton314

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.

ashton314 avatar Jun 01 '23 21:06 ashton314

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

ajmandourah avatar Jun 02 '23 00:06 ajmandourah