2025-03-23 7:43 PM - last edited on 2025-03-24 12:21 AM by Peter BENSCH
Hi everyone,
Good day!
I'm currently working on modifying the Responder ID using CAN FD communication.
I initially had a firmware running on an MCU that was capable of modifying the Responder ID. My goal now is to analyze the CAN FD communication from that MCU and replicate the commands using Python to perform the modification.
However, during testing, I encountered an issue: the Responder ID is consistently being set to 0xFC, and in one instance, it was even modified to 0x1FC.
As a result, I'm now unable to use the original MCU firmware to reconfigure the Responder ID.
I'm not quite sure what went wrong in the process — would anyone have insights or suggestions?
I will provide the CAN FD communication flow shortly.
2025-03-23 8:34 PM
Assuming the current Responder IDs are: 0x14 and 0x15
1. Broadcast command to set PWM duty cycle:
```
0x780 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x781 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
```
2. Unclear why the command sets the state voltage for CH4 ~ CH15:
```
0x014 16 A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
```
3. Set to Normal / Bus Mode:
```
0x014 5 18 00 00 00 01
```
4. After writing values to channels without OLED, the channels are not all disabled:
```
0x014 5 15 04 00 00 00
```
5. Initialize chain via broadcast:
```
0x580 3 00 00 14
0x580 3 02 00 15
```
6. Set output current:
```
0x7C0 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x7C1 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
```
7. Enable chip select:
```
0x014 5 18 00 00 00 05
```
8. Unclear operations in the following sequence:
```
Transfer : 0x014 5 58 00 00 00 05
Receiver: 0x214 5 04 00 00 00 05
Transfer : 0x014 5 1E 00 00 DC BA
Receiver: 0x214 1 04
Transfer : 0x014 5 5E 00 00 00 00
Receiver: 0x214 5 04 00 00 00 01
```
9. Set new Responder IDs = 0x00, 0x01:
```
0x014 16 B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
```
The watchdog has been continuously fed during the process to keep the chip active.
After completing the configuration, I performed a power cycle. However, I noticed that the Responder ID was unexpectedly set to 0x1FC.......