no the arduino does not go between them, everything is powered from the flight controller, the Arduino is taking control of the sensors, changing the address and then letting the flight controller take control of them. The reason this works is that ardupilot takes much longer to startup than this little program so it can change them before ardupilot looks for them.
you connect the splitter into your flight controller, that provides, 5v SCL SDA and GROUND signals
the lidars and the arduino all plug into the splitter, each getting a 5v, SCL SDA and ground
you add 1 extra wire between the arduino A0 A1 A2 A3 pins and each lidar.
you can buy the connectors prewired, the are jst 1.25 4pin.
I bought 2 vl53l0x, and 2 vl53l1x lidars (and the rest of things:arduino and splitter)
After wiring everything up, plugging it into the flight controller (to I2C port that was initially desingned for airspeed sensor), and turning it on, the board is stuck on boot loop, and won’t turn on, what could possibly be wrong? I checked the wiring but everything seemed ok.
Also, before wiring everything together, i plugged in a single sensor straight to I2C port, and everything worked fine.
you need the arduino board to change their addresses. They all have the same i2c address so conflict with each other, The Arduino board starts them one at a time and changes their addresses before the flight controller starts so they can all be detected with different addresses.
if your looking for a cheap 360 degree lidar i got one working here
tried the LUA script, but it is not possible on my side because my fc is only 1mb of memory, and it does not work, it says: “Scripting: out of memory”.
after swapping the SCL and SDA, the FC still does not turn on, and still turns on after unplugging one (any) senosr from the splitter, but i don’t think my FC is receiving any data from the rest of the senosrs…