Possible bug in recent commit

Compiling klippy with:

Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
        Micro-controller Architecture (Raspberry Pi RP2040)  --->
        Bootloader offset (No bootloader)  --->
        Flash chip (W25Q080 with CLKDIV 2)  --->
        Communication interface (USB to CAN bus bridge)  --->
    (1) CAN RX gpio number
    (0) CAN TX gpio number
        USB ids  --->
    (1000000) CAN bus speed
    ()  GPIO pins to set at micro-controller startup (NEW)

Then loading klippiy directly into the SKR PICO works. :smiley:

Loading klippy directly into SKR PICO.txt (3.1 KB)
klippy (21).log (50.0 KB)

Compiling CanBoot with:

    Micro-controller Architecture (Raspberry Pi RP2040)  --->
    Flash chip (W25Q080 with CLKDIV 2)  --->
    Build CanBoot deployment application (16KiB bootloader)  --->
    Communication interface (USB)  --->
    USB ids  --->
    ()  GPIO pins to set on bootloader entry
    [*] Support bootloader entry on rapid double click of reset button
    [ ] Enable bootloader entry on button (or gpio) state
    [ ] Enable Status LED

and klippy with:
make menuconfig:

    [*] Enable extra low-level configuration options
        Micro-controller Architecture (Raspberry Pi RP2040)  --->
        Bootloader offset (16KiB bootloader)  --->
        Communication interface (USB to CAN bus bridge)  --->
    (1) CAN RX gpio number
    (0) CAN TX gpio number
        USB ids  --->
    (1000000) CAN bus speed
    ()  GPIO pins to set at micro-controller startup (NEW)

Then loading klippy via CanBoot does not work. :face_exhaling:
Loading Klippy via CanBoot.txt (5.5 KB)
klippy (22).log (129.8 KB)

Compiling dirty klippy with:

    bool
    depends on HAVE_GPIO && HAVE_GPIO_I2C
    depends on !MACH_RP2040 # Temporary hack to avoid rp2040 regression
    default y

and

    [*] Enable extra low-level configuration options
        Micro-controller Architecture (Raspberry Pi RP2040)  --->
        Bootloader offset (16KiB bootloader)  --->
        Communication interface (USB to CAN bus bridge)  --->
    (1) CAN RX gpio number
    (0) CAN TX gpio number
        USB ids  --->
    (1000000) CAN bus speed
    ()  GPIO pins to set at micro-controller startup (NEW)

Then loading dirty-klippy via CanBoot works :smiley:
Loading dirty-Klippy via CanBoot.txt (4.3 KB)
klippy (27).log (115.2 KB)

This raises several questions.

  1. Why am I using CanBoot (USB) on the SKR PICO, I cannot figure out how to load klippy without first loading CanBoot again via the boot reset. Kiauh seemed to keep klippy up to date without it. Maybe someone could explain if it is needed and show me how to use it properly?
  2. At least 90% of my day was wasted because make distclean and make clean do not seem to behave as expected. Even together they did not seem to revert the build to any expected state. Even git seemed to think the files were all identical but it would not compile (perhaps the problem was hiding in ‘.gitignore’ ).
    problem with clean, distclean, git .txt (1.7 KB)
    The fastest way to compile klipper seems to be:
    a. delete it all.
    b. re-clone it.
    c. don’t use distclean or clean.
    d. make menuconfig.
    e. make.
    I am clearly not an expert on klipper code and tried my best to help diagnose this problem, could you please make it a little easier to work on?
  3. It would make sense for me to use CanBoot on the EBB36 board, but there does not seem to be an automated mechanism to keep it up to date. Is this on the cards? The usual way is to use multiple build directories.
  4. I do not have the insight into the interaction between CanBoot and klipper, could someone else determine which project is at fault please?

I have included all the logs as clearly as I can, and would like to thank the authors for a great product.