Why does my CANbus does not work?

As shown in the figure, I downloaded the bin file to the target board, and some sensors worked properly, but there was no message on the can bus. Not only did the babel have no message, but the signal could not be captured with a logic analyzer.
Is Bootloader struct values: CAN bitrate: 0, UAVCAN Node ID: 0 right?
How can I solve this problem? thank you.

MESSAGA:

BOOTING

Zubax GNSS 2.2 4.1.03ed2388 / 1 OK
Bootloader struct values: CAN bitrate: 0, UAVCAN Node ID: 0
Air sensor disabled
Mag: AVG -0.030688 -4.459447 0.747830 G
Mag: AVGST 2.020342 -2.466813 0.523981 G
Mag: ST dxyz: 2.051030 1.992635 0.223849 G
Mag self test OK
USB inited
Starting shell [br 0]
GNSS init...
ublox: Trying baudrate 9600...
ublox: Trying baudrate 115200...
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Baudrate match 115200
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x0a id=0x04 payload_len=160
ublox: MON-VER: SW='ROM CORE 3.01 (107888)' HW='00080000'
ublox: MON-VER extension 0: 'FWVER=SPG 3.01'
ublox: MON-VER extension 1: 'PROTVER=18.00'
ublox: MON-VER extension 2: 'GPS;GLO;GAL;BDS'
ublox: MON-VER extension 3: 'SBAS;IMES;QZSS'
ublox: Detected protocol version: 018.000
ublox: Unknown message: class=0x06 id=0x3e payload_len=60
ublox: CFG-GNSS BEFORE configuration:
ublox: CFG-GNSS numTrkChHw  = 32
ublox: CFG-GNSS numTrkChUse = 32
ublox: CFG-GNSS block 0: gnssId=0[GPS    ] resTrkCh=8  maxTrkCh=16 flags=0x01010001[on]
ublox: CFG-GNSS block 1: gnssId=1[SBAS   ] resTrkCh=1  maxTrkCh=3  flags=0x01010001[on]
ublox: CFG-GNSS block 2: gnssId=2[Galileo] resTrkCh=4  maxTrkCh=8  flags=0x01010001[on]
ublox: CFG-GNSS block 3: gnssId=3[BeiDou ] resTrkCh=8  maxTrkCh=16 flags=0x01010000[off]
ublox: CFG-GNSS block 4: gnssId=4[IMES   ] resTrkCh=0  maxTrkCh=8  flags=0x03010000[off]
ublox: CFG-GNSS block 5: gnssId=5[QZSS   ] resTrkCh=0  maxTrkCh=3  flags=0x05050001[on]
ublox: CFG-GNSS block 6: gnssId=6[GLONASS] resTrkCh=8  maxTrkCh=14 flags=0x01010001[on]
ublox: Setting new CFG-GNSS...
ublox: New CFG-GNSS configuration has been confirmed by the receiver
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x06 id=0x3e payload_len=60
ublox: CFG-GNSS AFTER configuration:
ublox: CFG-GNSS numTrkChHw  = 32
ublox: CFG-GNSS numTrkChUse = 32
ublox: CFG-GNSS block 0: gnssId=0[GPS    ] resTrkCh=8  maxTrkCh=16 flags=0x01010001[on]
ublox: CFG-GNSS block 1: gnssId=1[SBAS   ] resTrkCh=1  maxTrkCh=3  flags=0x01010001[on]
ublox: CFG-GNSS block 2: gnssId=2[Galileo] resTrkCh=4  maxTrkCh=8  flags=0x01010001[on]
ublox: CFG-GNSS block 3: gnssId=3[BeiDou ] resTrkCh=8  maxTrkCh=16 flags=0x01010000[off]
ublox: CFG-GNSS block 4: gnssId=4[IMES   ] resTrkCh=0  maxTrkCh=8  flags=0x03010000[off]
ublox: CFG-GNSS block 5: gnssId=5[QZSS   ] resTrkCh=0  maxTrkCh=3  flags=0x05050001[on]
ublox: CFG-GNSS block 6: gnssId=6[GLONASS] resTrkCh=8  maxTrkCh=14 flags=0x01010001[on]
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x0a id=0x28 payload_len=8
ublox: MON-GNSS supported=15 default=3 enabled=11 simultaneous=3
ublox: Dynamic model: 0x08
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40

In order to detect the bit rate of the CAN bus, the board will be silently listening for traffic there. The supported bit rates are 1 Mbps, 500 kbps, 250 kbps, and 125 kbps. The CAN stack will not be able to initialize itself unless it has observed any bus traffic whatsoever at one of the aforementioned bit rates.

thanks for you reply,
I connected it to zubax babel,and in bootloader,it detect the bit rate 1000000,also dected node id 124,mode is maintenance
then booting to application,“Bootloader struct values” is right,but CAN initialization is not successful
debug message:“Could not init CAN; status: -1006, autodetect: 0, bitrate: 1000000”
could you give me some advice please,thanks.

gnss2

MESSAGE like bellow:
Zubax GNSS Bootloader 2.2 1.1.03ED2388 / OK
Bootloader: Inited in 240 ms
BootDelay> Bootloader.UAVCAN: CAN 1000000 bps, NID 124

BOOTING
Bootloader.UAVCAN: Exit
Zubax GNSS 2.2 4.1.03ed2388 / 1 OK
Bootloader struct values: CAN bitrate: 1000000, UAVCAN Node ID: 124
Air sensor disabled
Mag: AVG -0.081192 -4.429461 0.752389 G
Mag: AVGST 1.964928 -2.439106 0.524770 G
Mag: ST dxyz: 2.046120 1.990355 0.227619 G
Mag self test OK
USB inited
GNSS init...
ublox: Trying baudrate 9600...
Could not init CAN; status: -1006, autodetect: 0, bitrate: 1000000
ublox: Trying baudrate 115200...
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Baudrate match 115200
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x27 id=0x01 payload_len=40
ublox: Unknown message: class=0x0a id=0x04 payload_len=160
ublox: MON-VER: SW='ROM CORE 3.01 (107888)' HW='00080000'
ublox: MON-VER extension 0: 'FWVER=SPG 3.01'
ublox: MON-VER extension 1: 'PROTVER=18.00'
ublox: MON-VER extension 2: 'GPS;GLO;GAL;BDS'
ublox: MON-VER extension 3: 'SBAS;IMES;QZSS'
ublox: Detected protocol version: 018.000

GUI TOOL:

According to Libuavcan, this error code means that the INAK bit of the CAN controller has not been cleared during initialization:

The reference manual for the MCU says this:

This bit is cleared by hardware when the CAN hardware has left the initialization mode (to be synchronized on the CAN bus). To be synchronized the hardware has to monitor a sequence of 11 consecutive recessive bits on the CAN RX signal.

From which follows that your CAN bus is probably heavily disturbed or is otherwise malfunctioning. If you still can’t find the root cause, please tell me which exact binary are you using?

hi,
this is run envirance info:
test hardware: STM32F105RCT6,The core board bought from alibaba taobao.
firmware: com.zubax.gnss-2.2-4.1.3ed2388.compound , build from git repertory (zubax_gnss),master branch.
compiled by ubuntu 18.04.3 LTS, arm-none-eabi-gcc-7.3.1
Thank you for your patience. :slight_smile:

Do I understand correctly that you are running the firmware on a third-party board? If that is the case, we may be unable to help because we are not familiar with your hardware.

Yes, I use the core development board to learn the CAN device conmunication code.
Do you mean I need to use official hardware to learn? and where can I buy it in China?thanks.


We don’t mind that you run our firmware on a different board (it’s open source for a reason). I am saying that we can’t assist you remotely because hardware problems are hard to diagnose this way. Consider contacting a local expert.

You can buy Zubax GNSS 2 from Estonia or USA:

https://shop.titaneliteinc.com/index.php?route=product/product&product_id=987

hello pavel,
I have issue an order to buy it,How many days does it usually take to get to China?

I think DHL should be able to deliver it in under a week.