Skip to content

Canable 2.0 slcan ack timeout #109

@chengdi1988

Description

@chengdi1988
  • Hardware: Canable 2.0 Pro from Makerbase
  • Firmware: updated to Canable 2.5 of slcan from Elmue.
  • The detail of slcan protocol implemented in the firmware is HERE
  • DroneCAN GUI Tool: version 1.2.28
  • OS: win10 64bit version=10.0.19045.6466

Phenomena:

  • putty works:
V
+Board: MksMakerbase    MCU: STM32G431  DevID: 1128     Firmware: 2429224      Slcan: 100       Clock: 160      Limits: 512,256,128,128,32,32,16,16
  • DroneCAN GUI Tool SLCAN ACK Timeout
Image
  • pydronecan SLCAN ACK Timeout
Python 3.12.10 (tags/v3.12.10:0cc8128, Apr  8 2025, 12:21:36) [MSC v.1943 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 9.9.0 -- An enhanced Interactive Python. Type '?' for help.
Tip: We can't show you all tips on Windows as sometimes Unicode characters crash the Windows console, please help us debug it.

In [1]: import dronecan as dc

In [5]: import logging

In [6]: logging.basicConfig(level=logging.DEBUG)

DEBUG:asyncio:Using proactor: IocpProactor
In [7]: node =dc.make_node("COM13",baudrate=1024000,bit_rate=500000)
INFO:dronecan.driver.slcan:IO process started with PID 31408
INFO:dronecan.driver.slcan:Init: Sending command b''
INFO:dronecan.driver.slcan:Init: Waiting for ACK...
INFO:dronecan.driver.slcan:Init: Sending command b'C'
INFO:dronecan.driver.slcan:Init: Waiting for ACK...
INFO:dronecan.driver.slcan:Init: Sending command b'S8'
INFO:dronecan.driver.slcan:Init: Waiting for ACK...
ERROR:dronecan.driver.slcan:Could not init SLCAN adapter, will retry; error was: SLCAN ACK timeout
Traceback (most recent call last):
  File "C:\Users\chengdi\AppData\Local\Programs\Python\Python312\Lib\site-packages\dronecan\driver\slcan.py", line 519, in _init_adapter
    wait_for_ack()
  File "C:\Users\chengdi\AppData\Local\Programs\Python\Python312\Lib\site-packages\dronecan\driver\slcan.py", line 474, in wait_for_ack
    raise DriverError('SLCAN ACK timeout')
dronecan.driver.common.DriverError: SLCAN ACK timeout
INFO:dronecan.driver.slcan:Init: Sending command b''
INFO:dronecan.driver.slcan:Init: Waiting for ACK...
INFO:dronecan.driver.slcan:Init: Sending command b'C'
INFO:dronecan.driver.slcan:Init: Waiting for ACK...
INFO:dronecan.driver.slcan:Init: Sending command b'S8'
INFO:dronecan.driver.slcan:Init: Waiting for ACK...
ERROR:dronecan.driver.slcan:Could not init SLCAN adapter, will retry; error was: SLCAN ACK timeout
Traceback (most recent call last):
  File "C:\Users\chengdi\AppData\Local\Programs\Python\Python312\Lib\site-packages\dronecan\driver\slcan.py", line 519, in _init_adapter
    wait_for_ack()
  File "C:\Users\chengdi\AppData\Local\Programs\Python\Python312\Lib\site-packages\dronecan\driver\slcan.py", line 474, in wait_for_ack
    raise DriverError('SLCAN ACK timeout')
dronecan.driver.common.DriverError: SLCAN ACK timeout
INFO:dronecan.driver.slcan:Init: Sending command b''
INFO:dronecan.driver.slcan:Init: Waiting for ACK...
INFO:dronecan.driver.slcan:Init: Sending command b'C'
INFO:dronecan.driver.slcan:Init: Waiting for ACK...
INFO:dronecan.driver.slcan:Init: Sending command b'S8'
INFO:dronecan.driver.slcan:Init: Waiting for ACK...
ERROR:dronecan.driver.slcan:Could not init SLCAN adapter, will retry; error was: SLCAN ACK timeout
Traceback (most recent call last):
  File "C:\Users\chengdi\AppData\Local\Programs\Python\Python312\Lib\site-packages\dronecan\driver\slcan.py", line 519, in _init_adapter
    wait_for_ack()
  File "C:\Users\chengdi\AppData\Local\Programs\Python\Python312\Lib\site-packages\dronecan\driver\slcan.py", line 474, in wait_for_ack
    raise DriverError('SLCAN ACK timeout')
dronecan.driver.common.DriverError: SLCAN ACK timeout
INFO:dronecan.driver.slcan:Init: Sending command b''
INFO:dronecan.driver.slcan:Init: Waiting for ACK...
INFO:dronecan.driver.slcan:Init: Sending command b'C'
INFO:dronecan.driver.slcan:Init: Waiting for ACK...
INFO:dronecan.driver.slcan:Init: Sending command b'S8'
INFO:dronecan.driver.slcan:Init: Waiting for ACK...
ERROR:dronecan.driver.slcan:IO process failed
Traceback (most recent call last):
  File "C:\Users\chengdi\AppData\Local\Programs\Python\Python312\Lib\site-packages\dronecan\driver\slcan.py", line 646, in _io_process
    _init_adapter(conn, bitrate)
  File "C:\Users\chengdi\AppData\Local\Programs\Python\Python312\Lib\site-packages\dronecan\driver\slcan.py", line 537, in _init_adapter
    raise ex
  File "C:\Users\chengdi\AppData\Local\Programs\Python\Python312\Lib\site-packages\dronecan\driver\slcan.py", line 519, in _init_adapter
    wait_for_ack()
  File "C:\Users\chengdi\AppData\Local\Programs\Python\Python312\Lib\site-packages\dronecan\driver\slcan.py", line 474, in wait_for_ack
    raise DriverError('SLCAN ACK timeout')
dronecan.driver.common.DriverError: SLCAN ACK timeout
INFO:dronecan.driver.slcan:IO process is terminating...
INFO:dronecan.driver.slcan:IO process is now ready to die, goodbye
---------------------------------------------------------------------------
DriverError                               Traceback (most recent call last)
Cell In[7], line 1
----> 1 node =dc.make_node("COM13",baudrate=1024000,bit_rate=500000)

File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\dronecan\node.py:554, in make_node(can_device_name, **kwargs)
    549 def make_node(can_device_name, **kwargs):
    550     """Constructs a node instance with specified CAN device.
    551     :param can_device_name: CAN device name, e.g. "/dev/ttyACM0", "COM9", "can0".
    552     :param kwargs: These arguments will be supplied to the CAN driver factory and to the node constructor.
    553     """
--> 554     can = driver.make_driver(can_device_name, **kwargs)
    555     return Node(can, **kwargs)

File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\dronecan\driver\__init__.py:67, in make_driver(device_name, **kwargs)
     65         return MAVCAN(device_name, **kwargs)
     66     else:
---> 67         return SLCAN(device_name, **kwargs)
     68 elif PythonCAN is not None:
     69     return PythonCAN(device_name, **kwargs)

File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\dronecan\driver\slcan.py:751, in SLCAN.__init__(self, device_name, **kwargs)
    749     if isinstance(sig, Exception):
    750         self._tx_queue.put(IPC_COMMAND_STOP, timeout=IO_PROCESS_INIT_TIMEOUT)
--> 751         raise sig
    752 except queue.Empty:
    753     pass

DriverError: SLCAN ACK timeout
> c:\users\chengdi\appdata\local\programs\python\python312\lib\site-packages\dronecan\driver\slcan.py(751)__init__()
    749                 if isinstance(sig, Exception):
    750                     self._tx_queue.put(IPC_COMMAND_STOP, timeout=IO_PROCESS_INIT_TIMEOUT)
--> 751                     raise sig
    752             except queue.Empty:
    753                 pass

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions