As mentioned, the first 02
is the amount of data bytes which are following (09 02
).
This is because OBD2 requests are supposed to be full CAN frames, i.e., padded to 8 bytes.
On the wire, this command leads to:
(1634135175.912238) can0 7DF [3] 02 09 0A
Most ECUs will not answer to that. Instead, you will need to send
(1634135272.796716) can0 7DF [8] 02 09 0A AA AA AA AA AA
To get this, you issue, e.g. cansend can0 7DF#02090AAAAAAAAAAA
Then, you will get the start of the result, which is something like that:
(1634135272.798427) can0 7E8 [8] 10 17 49 0A 01 45 43 4D
Note that you will not get the full response unless you implement ISO-TP, which requires you to send flow-control ACK frames in return.