USB HID keyboard sample not working on nrf52840 dongle(PCA10059)

I got an nrf52840 dongle(PCA10059) and I'm trying to run the official usb-hid-keyboard example on it, but the compilation is failing. What could be the cause, and how should I go about modifying the example code?

[179/184] Linking C executable zephyr/zephyr_pre0.elf
[180/184] Generating linker.cmd
[181/184] Generating isr_tables.c, isr_tables_vt.ld, isr_tables_swi.ld
FAILED: zephyr/isr_tables.c zephyr/isr_tables_vt.ld zephyr/isr_tables_swi.ld /Volumes/.../keyboard/hid-keyboard/build/hid-keyboard/zephyr/isr_tables.c /Volumes/.../keyboard/hid-keyboard/build/hid-keyboard/zephyr/isr_tables_vt.ld /Volumes/.../keyboard/hid-keyboard/build/hid-keyboard/zephyr/isr_tables_swi.ld 
cd /Volumes/.../keyboard/hid-keyboard/build/hid-keyboard/zephyr && /opt/nordic/ncs/toolchains/b8efef2ad5/bin/python /opt/nordic/ncs/v2.9.1/zephyr/scripts/build/gen_isr_tables.py --output-source isr_tables.c --linker-output-files isr_tables_vt.ld isr_tables_swi.ld --kernel /Volumes/.../keyboard/hid-keyboard/build/hid-keyboard/zephyr/zephyr_pre0.elf --intlist-section .intList --intlist-section intList --sw-isr-table --vector-table
gen_isr_tables.py: error: multiple registrations at table_index 39 for irq 39 (0x27)
Existing handler 0xfcbd, new handler 0xfcbd
Has IRQ_CONNECT or IRQ_DIRECT_CONNECT accidentally been invoked on the same irq multiple times?

ninja: build stopped: subcommand failed.
FATAL ERROR: command exited with status 1: /opt/nordic/ncs/toolchains/b8efef2ad5/bin/cmake --build /Volumes/.../keyboard/hid-keyboard/build/hid-keyboard

the toolchain and sdk is v2.9.1, board target is nrf52840dongle.

Parents
  • Hi,

    IRQ39 is for USB, and the reason for the error is that by default the nRF52840 Dongle board files use USB for logging. You can disable logging over USB by adding this to prj.conf, and the project should build:

    CONFIG_LOG=n
    CONFIG_CONSOLE=n
    CONFIG_BOARD_SERIAL_BACKEND_CDC_ACM=n
    CONFIG_USB_CDC_ACM=n

    PS: The hid-keyboard sample comes from the Zephyr project and while included in the nRF Connect SDK as part of Zephyr it is not officially supported by Nordic.

Reply
  • Hi,

    IRQ39 is for USB, and the reason for the error is that by default the nRF52840 Dongle board files use USB for logging. You can disable logging over USB by adding this to prj.conf, and the project should build:

    CONFIG_LOG=n
    CONFIG_CONSOLE=n
    CONFIG_BOARD_SERIAL_BACKEND_CDC_ACM=n
    CONFIG_USB_CDC_ACM=n

    PS: The hid-keyboard sample comes from the Zephyr project and while included in the nRF Connect SDK as part of Zephyr it is not officially supported by Nordic.

Children
Related