linker-bot / linker-bot/linkerhand-cpp-sdk

[LinkerHand O6] No CAN feedback after Jetson reboot

Open
#16 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
10
Forks
8
Avg merge
1m
Merged PRs (30d)
1

Description

Environment

  • LinkerHand O6, left and right hands
  • Jetson AGX, ARM64
  • Vendor SDK: linkerhand-cpp-sdk v2.1.9
  • Vendor API: LinkerHandApi
  • Vendor CAN sample: test_o6_can_0
    (O6 CAN sample with TX/RX logging)
  • PEAK PCAN-USB:
    • Left hand: can2, USB path 1-4.3
    • Right hand: can3, USB path 1-4.4
  • Classic CAN bitrate: 1,000,000 bit/s
    Problem
    After rebooting the Jetson while the hands remain powered:
  • The vendor CAN sample can open can2 and can3.
  • CAN transmit requests are sent.
  • No valid response is received from either hand.
  • LinkerHandApi::getVersion() returns Device Serial: Unknown.
  • Temperature and fault-code values remain zero.
  • The issue occurs after both service restart and direct SDK execution.
    CAN capture
    (000.000000) can3 027 [1] 33
    (000.001722) can3 027 [1] 35
    (000.019404) can2 028 [1] 33
    (000.021925) can2 028 [1] 35
    (001.001061) can3 027 [1] 33
    (001.003026) can3 027 [1] 35
    (001.018927) can2 028 [1] 33
    (001.020042) can2 028 [1] 35
    The original capture did not use candump -x, so TX/RX direction was not confirmed. A direction-aware capture is required.
    Recovery test
  • Power-cycling the hands only: no recovery.
  • Unplugging/replugging USB-CAN only: no recovery.
  • Power-cycling the hands and unplugging/replugging both USB-CAN adapters: feedback returns.
    Expected behavior
    After a Jetson reboot, the vendor SDK should automatically re-establish the O6 CAN session and receive identity, temperature, fault, and position feedback without requiring a simultaneous hand and USB-CAN power cycle.
    Questions for LinkerHand
  1. Does O6 firmware require an explicit session reset after the host reboots while the hand remains powered?
  2. Does LinkerHandApi provide a documented CAN/session reinitialization function?
  3. Does getVersion() only read a cached value after the first callback registration?
  4. Are C2, C0, C1, and C4 sufficient to reinitialize O6 identity feedback?
  5. Is there a recommended PEAK PCAN-USB reset procedure after host reboot?
  6. Is this a known O6 firmware or USB-CAN RX-path issue?
Image

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure with the vendor CAN sample test_o6_can_0 after a Jetson reboot, using candump -x on can2 and can3 to confirm TX/RX direction. Inspect LinkerHandApi::getVersion() and the available session initialization path, then test whether an explicit reset restores identity, temperature, fault, and position feedback. Done means identifying whether recovery requires an SDK, firmware, or PEAK adapter procedure.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
embedded-iot, networking, robotics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.