ISOTPSEND(1)

πŸ“¦
version 2023.03 Β· 3 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– ISOTPSEND β€” the manual page, but make it make sense πŸ’–

okay bestie, so this is isotpsend, and it lives in section 1 of the manual (that's the "User Commands" girlies πŸ’…). It's the manual page for isotpsend 2023.03-1build1, and yes, the whole vibe is: you're pushing ISO-TP PDUs out onto a CAN interface, and it EATS the PDU data off STDIN. No cap. Let's get into it. πŸ¦‹


✨ SYNOPSIS ✨

isotpsend [options] <CAN interface>

that's it. that's the whole shape of it. you give it a CAN interface, you give it some options, and you feed it hex off STDIN like it's a little hungry gremlin πŸ“


πŸŽ€ OPTIONS πŸŽ€

  • -s <can_id> β€” the source can_id. fr fr: use 8 digits if you're working with extended IDs, don't be out here being sloppy with your digit count 😭
  • -d <can_id> β€” the destination can_id. same energy as -s: 8 digits for extended IDs, bestie, use all of them πŸ‘‘
  • -x <addr>[:<rxaddr>] β€” extended addressing, and you can optionally tack on a separate rxaddr after the colon if you're feeling fancy πŸ’…
  • -p [tx]:[rx] β€” sets and enables the tx/rx padding bytes. both slots, one flag, iconic behavior honestly.
  • -P <mode> β€” checks the rx padding. pick your mode: (l)ength, (c)ontent, or (a)ll. yes you literally just say the letter, it's giving letter-of-the-day 🌈
  • -t <time ns> β€” the frame transmit time (that's N_As) in nanosecs. this one has a little star on it, hold onto that thought. (*) ⭐
  • -f <time ns> β€” ignores the FC (flow control) and force-feeds a local tx stmin value, in nanosecs. it's not waiting around for permission, it's the main character 😀
  • -D <len> β€” sends a fixed PDU with len bytes. and the big part: no STDIN data. none. zero. it doesn't want any, so don't give it any. πŸ™ˆ
  • -l <num> β€” sends num PDUs. and if you're truly unhinged, use 'i' for an infinite loop. that's not a typo, that's a lifestyle. 😭πŸ”₯
  • -g <usecs> β€” waits the given usecs (microseconds, bestie) before sending a PDU. little pause, little breather, self-care 🧚
  • -b β€” blocks until the PDU transmission is completed. it WILL wait for its moment and you WILL respect it.
  • -S β€” SF broadcast mode β€” for functional addressing. πŸ“‘
  • -C β€” CF broadcast mode β€” does not wait for flow controls. it said "no thoughts, just transmit" πŸ’€
  • -L <mtu>:<tx_dl>:<tx_flags> β€” link layer options for CAN FD. three values, colons between them, slay in that order. ✨

🫢 THE IMPORTANT DEETS 🫢

CAN IDs and addresses are given and expected in hexadecimal values. so if you fed it decimal and it looked at you weird β€” yeah, that's on that. lowkey important.

The pdu data is expected on STDIN, in space separated ASCII hex values. so it's not taking the data as an argument, it's taking it from stdin. feed it right, bestie. πŸ“

(*) = Use -t ZERO to set N_As to zero for Linux version 5.18+. that's the star from earlier. that's what it was for. no cap. ⭐

and that's the whole page, we're done, go transmit something 😌

this was isotpsend from version 2023.03-1build1, dated December 2025 β€” mwah, take care of her, she's doing her best πŸ«ΆπŸ’–βœ¨

πŸ“¦ where this page comes from