0

CAN Bus with non-ML-R boards

ML-R components are CAN Bus compliant with specifications 2.0A and B (active) with a bit rate up to 1 Mbit/s. Some of them have hardware compliant with CAN FD, but it is not enabled at this time. CAN Bus is meant to be an open bus so any device that implements CAN Bus protocol can connect to ML-R devices. However, be aware that many boards advertise that they feature CAN Bus, although lacking a CAN Bus transceiver. Without that chip the MCU cannot connect to bus.

ML-R bus uses 250 kHz speed and it can be changed in firmware. The speed is a compromise between different demands on hardware, electromagnetic emission, maximum length of bus wires, current consumption, and bandwidth.

Alternatives to ML-R MCUs

If You want to connect other MCU board, for example instead of MRMS ESP32: Arduino, IMU, eFuse, BT, WiFi, CAN Bus (mrm-esp32), either use a 4 pin Dupont 0.1" connector (if it exists) or use JST connector (it is present in every ML-R CAN Bus device). When using Dupont connector, usually there are only holes where it can be soldered. ML-R boards, especially tiny ones, get unwieldy with the connector so it is not present by default. Check device's web page to find pinout. You will have to supply 5 V DC, either by using ML-R regulator (like ML-R Power Supply 3x C, voltmeter (mrm-ps3xc)) or some other. This is power supply for ML-R board's electronics. There is also mandatory GND (0 V) pin. ML-R MCU boards are single point supplying 5 V voltage into CAN Bus.

The other 2 pins are for CAN Bus: CAN Bus high and CAN Bus low. Connect them to output of Your transceiver. That's it. You will have to find software for Your microcontroller.

The other mentioned solution is to use JST GHR-04V-K connector with SSHL-002T-P0.2 contacts to produce a cable to connect the one of the 2 JST sockets. If You need a complete cable, contact ML-R support.

Alternatives to ML-R devices

Devices are all other boards except ML-R microcontroller boards, like MRMS ESP32: Arduino, IMU, eFuse, BT, WiFi, CAN Bus (mrm-esp32) or MRMS STM32F446, IMU, CAN, eFuse, Arduino, WiFi, BT (mrm-stm4c). The difference is that they do not supply 5 V current, but consume it. So, in this case, don't connect 5 V but rather can use it to supply Your board. Your device should use 250 kHz. Locate CAN Bus pins and connect them to ML-R CAN Bus. For example, when using MRMS ESP32: Arduino, IMU, eFuse, BT, WiFi, CAN Bus (mrm-esp32), locate 4-pin Dupont header above 2 CAN Bus connectors of the ESP32. 2 rightmost pins are CAN Bus Low and CAN Bus High. You can supply voltage to Your device any way You like (and may use the mentioned 5 V) but it will be wise to connect 0 V (GND) levels between Your board and ML-R system. Although CAN Bus can work without a common ground, the operation is not as robust as it may be.