Matek CAN-L4-BM with PX4

Hi all!

I have a problem - I can not connect the sensor by uavcan from Matek.
The flight controller sees the sensor, but writes the wrong voltage.

For example - when my voltage is 0 - qgc tells me that 40 volts. When I give voltage to the sensor - it says 23-35 volts.

Hardware:
Cuav V6X
Matek CAN-L4-BM

Firmaware:
V1.13.3

image

uavcan status:

Pool allocator status:
Capacity hard/soft: 500/250 blocks
Reserved: 20 blocks
Allocated: 15 blocks

UAVCAN node status:
Internal failures: 0
Transfer errors: 0
RX transfers: 326
TX transfers: 414

CAN1 status:
HW errors: 474
IO errors: 474
RX frames: 0
TX frames: 471
CAN2 status:
HW errors: 0
IO errors: 0
RX frames: 1734
TX frames: 471

ESC outputs:
INFO [mixer_module] Param prefix: UAVCAN_EC
control latency: 0 events, 0us elapsed, 0.00us avg, min 0us max 0us 0.000us rms
Channel Configuration:
Channel 0: func: 0, value: 0, failsafe: 65535, disarmed: 65535, min: 1, max: 8191
Channel 1: func: 0, value: 0, failsafe: 65535, disarmed: 65535, min: 1, max: 8191
Channel 2: func: 0, value: 0, failsafe: 65535, disarmed: 65535, min: 1, max: 8191
Channel 3: func: 0, value: 0, failsafe: 65535, disarmed: 65535, min: 1, max: 8191
Channel 4: func: 0, value: 0, failsafe: 65535, disarmed: 65535, min: 1, max: 8191
Channel 5: func: 0, value: 0, failsafe: 65535, disarmed: 65535, min: 1, max: 8191
Channel 6: func: 0, value: 0, failsafe: 65535, disarmed: 65535, min: 1, max: 8191
Channel 7: func: 0, value: 0, failsafe: 65535, disarmed: 65535, min: 1, max: 8191
Servo outputs:
INFO [mixer_module] Param prefix: UAVCAN_SV
control latency: 0 events, 0us elapsed, 0.00us avg, min 0us max 0us 0.000us rms
Channel Configuration:
Channel 0: func: 0, value: 0, failsafe: 500, disarmed: 500, min: 0, max: 1000
Channel 1: func: 0, value: 0, failsafe: 500, disarmed: 500, min: 0, max: 1000
Channel 2: func: 0, value: 0, failsafe: 500, disarmed: 500, min: 0, max: 1000
Channel 3: func: 0, value: 0, failsafe: 500, disarmed: 500, min: 0, max: 1000
Channel 4: func: 0, value: 0, failsafe: 500, disarmed: 500, min: 0, max: 1000
Channel 5: func: 0, value: 0, failsafe: 500, disarmed: 500, min: 0, max: 1000
Channel 6: func: 0, value: 0, failsafe: 500, disarmed: 500, min: 0, max: 1000
Channel 7: func: 0, value: 0, failsafe: 500, disarmed: 500, min: 0, max: 1000

Sensor ‘battery’:
name: uavcan_battery
channel 0: node id 124 → instance 0

Sensor ‘gnss’:
name: uavcan_gnss

Sensor ‘mag’:
name: uavcan_mag

Online nodes (Node ID, Health, Mode):
124 OK OPERAT

uavcan: cycle time: 9349 events, 290565us elapsed, 31.08us avg, min 9us max 16589us 292.485us rms
uavcan: cycle interval: 9349 events, 2504.73us avg, min 18us max 16603us 1064.805us rms
nsh>

uavcan param list:

name: FORMAT_VERSION 2
name: CAN_NODE 0
name: CAN_BAUDRATE 1000000
name: FLASH_BOOTLOADER 0
name: DEBUG 0
name: BRD_SERIAL_NUM 0
name: BATT_MONITOR 26
name: BATT_SERIAL_NUM -1

Hi @lexaryb

Did you manage to solve the issue you had?
I am thinking of buying this sensor and integrate it with PX4, and I do not want to face any issue.

Thanks

Hi. Yes, I have solved this problem, but to be honest I don’t remember how, it was a long time ago. But this sensor still works without any problems

Great, thank you very much about the update.
I assume it might have been solved by tinkering some of the PX4 parameters.

Hi,

Sorry about annoying you but would it be possible if you can share the parameters you have in PX4 using this sensor?

Thank you very much.