Plug and play

If You want to connect more devices of the same type to a microcontroller, let's say via I2C, almost always some kind of setup is needed, as no 2 devices can occupy the same address. This can be either hardware or software setup, sometimes both. The process may be cumbersome or impose some limitations, like when only 1 or 2 addresses are selectable, and You need to have 3 or more units. Often You have to connect the devices one by one or disassemble the whole bus in order to change address of just one of the devices. Not so with plug and play ML-R! You can daisy chain many devices of the same type and they will all work out of the box.

A good example are STM VL53L0X and VL53L1X lidar chips. They demand a rather complicated setup, both hardware and software. On the other hand, if you have MRMS LIDAR 2m VL53L0X, CAN Bus (mrm-lid-can-b) or MRMS LIDAR 4m VL53L1X, CAN Bus (mrm-lid-can-b2), You will just have to plug them in.

The system is based on communication between all the CAN Bus devices in the system. If a device detects another one that uses the same address, it will change its own address. The actions will continue till each device has its unique address. You can later change the addresses manually using a terminal menu.

Software installation is also simplified. It is not needed to know any pin positions, interrupts, I²C addresses or similar complicated data. You can copy software setup just once for all of the devices. The setup is included in MRMS_ESP32.ino sample program and in some other software examples.