SKR-3, EBB-36 Restart always fails first time hit restart again all good

Basic Information:

Printer Model:
MCU / Printerboard:
klippy.log

Fill out above information and in all cases attach your klippy.log file. Pasting your printer.cfg is not needed

Describe your issue:

Klipper reports: ERROR

Internal error during connect: [Errno 19] No such device

Once the underlying issue is corrected, use the “RESTART”
command to reload the config and restart the host software.
Printer is halted

Hit restart (not firmware restart) and everything works and prints fine.
Klippy log link Ubuntu Pastebin
Looking in Klipper log looks like it does not see the EBB-36 right away.

That’s not what I’m seeing in the log. It’s not seeing the SKR board. I also see a ton of timer too close errors. I would try a different USB cable as a place to start.

Unable to open port: [Errno 2] could not open port /dev/serial/by-id/usb-Klipper_lpc1769_17D0000D80A037AFD8B5BF5BC62000F5-if00: [Errno 2] No such file or directory: '/dev/serial/by-id/usb-Klipper_lpc1769_17D0000D80A037AFD8B5BF5BC62000F5-if00'

I’m also not seeing any CAN devices configured in this log, so it’s unclear what you’re reporting, or if this is the wrong log file.

I have both the SKR and the EBB36 set up as CAN device and do not have a serial ID. Used SKR 3, EBB, CAN bus, Klipperscreen working for setup. I did change USB cables at that time using a new cable.
[mcu]
canbus_uuid: 63801cc884bd

[mcu EBBCan]
canbus_uuid: de14601a46c3

https://pastebin.ubuntu.com/p/cX97ZyXBfQ/

Save and restart.
If you have issues here, try a “Restart” (restarts Klipper) and/or a “Firmware Restart” a 2nd time.

  • The issue is can0 network disconnects when the restart causes a power cycle on your printer.
    The timing can be too fast and the can0 network doesn’t properly come back up. Another
    restart command is sometimes needed

This is from a PDF on setting up an Octopus to EBB directly, but this is a perfect description of the issue. Unfortunately no fix was listed.

this is my solution wait for devices on start.

  1. query device unit
    try to find your ebb device in the lists
    systemctl list-units -a -t device

  2. add dependency to klipper.service
    I just use arduino mega for example.
    [Unit]

    Requires=dev-serial-by\x2did-usb\x2dArduino__www.arduino.cc__0042_95433343833351E030E0\x2dif00.device
    After=dev-serial-by\x2did-usb\x2dArduino__www.arduino.cc__0042_95433343833351E030E0\x2dif00.device

  3. add timeout to klipper.service
    [Service]

    TimeoutStartSec=60

  4. reboot and test