Benewake TF03 and Port Can

I am using a 180m Benewake TF03 handle on the Telem2 port of my Cuav V5+ and would like to switch to the Can port. Does anyone use this port and could you guide me? I didn’t find any tutorial on how to use it.

if you need use the TF03 as CAN periph you need a CAN node for convert it from serial to CAN

Should I do this even if my TF03 has CAN output?

Just look for the correct pinout for the CAN port, if it’s supported you must set in the advanced parameters tree under rangefinder type as UAVCAN…, just enable Can P1 under CAN parameter.

I sent the command to TF03 and changed the output to CAN, changed the parameter of the LIDAR to UAVCAN = 24 and even so I get the message bad_proximity, I’m thinking that the ID sent is not the same as I should put in the parameter. Now I ordered a can reader for usb to be CAN to read the ID or return the output to serial.

set PRX_TYPE to 0 (unless you put a front-facing range finder/lidar for obstacle avoidance.
check also how you have set rangefinder parameters… address must be the same for rangefinder and also can sensor setting

I’m using it to avoid obstacles, but I can’t find the address in the TF03 manual.

try set in MP PRX_TYPE to 0… and check if you still have the same error.
if you have an fc with an f7 mcu, you can convert it in a CAN dongle so you can check the current parameters and set it with uavcan gui tool.

I don’t get the message after changing PRX_TYPE to 0 and I don’t have a controller to convert to CAN dongle. Had to order a CAN analyzer from Aliexpress. I have the TF03 manual and it says that the ID is 0x3 = 3, even so I don’t get the information. The can protocol of ardupilot is UAVCAN and TF03 is CAN, is there a difference?

CAN or UAVCAN its the same…
check if you have done the same pinout :
1 Red VCC Voltage Input
2 White CAN_L CAN
3 Green CAN_H CAN
7 Black GND GND

The pinout is correct, the only one I’m not using is the VCC, as I’m feeding the sensor from the battery.
I contacted Benewake and they informed them that the CAN protocol is not tested on ardupilot and that this is the reason it doesn’t work.

you can look for a can node

I have 2 free UART ports, I will go back to using the TF03 as a serial and my TF02 I will use on the I2C port and the last serial port I use the ADSB ping.

I’ll have to buy the TTL Benewake to get the port back to serial, but I bought a Can Adapter and managed to read the data, we have TF03 signal output and ID 3 as manual.

I think the ardupilot is not able to read the information.


so… ive done some tests with different rangefinders… tf mini… lighware lidars and teraranger evo on can node… ive a good reading about the distance.

Did you do any tests by connecting directly to the controller?

am i2c periph or uart periph cannot work properly if you connect it to can port of the fc… thats why mro developers have designed and the ardupilot developers built the proper firmware for make it work using a can node.
Can protocol is different from uart and i2c… spi.

I’ll have to buy the TTL Benewake to get the port back to serial

I use one of those cheap usb to ttl serial adapters off Amazon for connecting to the Benewakes using their software, just make sure its set to 3.3v and not 5v logic.

I used this adapter to switch from serial to can, but I can’t switch back from can to serial. I bought a CAN analyzer, sent the commands and it didn’t go back to serial. I had to buy the benewake adapter, I’m waiting for it to arrive.

I’ve been trying to get my TF-03 working on CAN with ArduCopter as well - did you end up having any luck getting it working? ArduCopter 4.1.3 mentions adding support for Benewake CAN, but I haven’t quite worked out the correct set of parameters. I also managed to switch the LIDAR to CAN mode and can’t get it back to UART lol.