Hello, I am currently working on a project involving a BMI323 IMU on a shuttleboard 3.0. I read the documentation for both the board and the BMI 323, but I am confused with the protocols. I have also read several posts on this subject, they said that they only connected the VDD, VDDIO, GND, SCK, SDA to the arduino board and they could read data from the sensor.
I have tried this, also ran the code available on github for scanning whether there are any I2C sensors connected to the bus and i got nothing. The documentation says i have to have CS pin hardwired to VDDIO in order for the sensor to know it should work on I2C, I did that, still nothing, then the datasheet also says to hardwire SD0 pin to GND to get the default I2C address. Did that, still nothing.
I do not know what else I should do in order to establish the communication between my board and the shuttleboard.
I have to add the fact that I could not find the appropriate connectors for the BMI board, as the distance between the pins is 1.27 mm and in my area, or on all the sites I looked, there were no such small connectors, so i soldered the wires directly to the shuttleboard pins, i tested them with a multimeter and the board is getting power.
I do not know what else to do in this situation.
They should work with the arduino. I also tried interfacing it with an ESP32 devkit C V4, it still does not work. I tried connecting the SD0 to both GND for the default I2C address and to VDDIO, for the alternative one, and I still get no sensor detected. Again I used a multimeter to test all the pins connected to the GND or the 3.3V. The only comparison I have is a guy on youtube who had a Shuttleboard 3.0 with the BMP585 pressure sensor on it, it had similar pins and the guy did similar wiring to what i did, he had an Arduino Nano board and his configuration worked perfectly, i still do not get what i am doing wrong
Thank you!
You are right with that, the logic pins on the shuttleboard support max 4V. Lets say it does not work with the arduino. I also tried connecting my second shuttleboard to an esp 32 devkit, which has 3.3V logic, after reading your comment. Still nothing detected. I also connected some accelerometers i had, to test the i2c scanner algorithm, but they did get detected.
This is a problem not many people have talked about and its very abstract to me, i still havent found a solution
The wires are the standard ones that you can buy from any component store. I tried to be very gentle with the soldering and tested all the pins that were connected to 3.3v and GND with a multimeter and the board was getting power just fine.
I have 2 boards so I connected the 2nd one to the esp in case the 1st one got damaged, but i got the same end result.
It may be a wiring issue, or some sort of process that i am not doing correctly.
I do not think either the soldering or the esp are the problem.
I used GPIO 21 for SDA and GPIO 22 for SCK on the esp
I will buy some resistors and I will try this.
In the mean time, I ve done more reasearch, and from what Ive seen, these shuttleboards should be plug and play, without requiring aditional hardware other than wires, which is very weird to me. I will try testing the logic pins next with a multimeter, hopefully I wont have to buy an oscilloscope
Ok, so I ve done more research into this subject, apparently the ESP 32 devkit does have pull up resistors already embeded.
I also read that they may not be enough for this kind of application, so the next step will be your suggestion, to add 4.7k resitors between SDA, SCL and VDDIO and see if I can establish the communication. I will keep you updated, in case I encounter any more problems!
Ok, so I have an update. I bought 4.7k resistors, connected them between 3.3V output of the ESP32 and SCL/SDA. I was feeling quite good about it, untill I powered the ESP up, ran the I2C scanner, and nothing. It still cannot be found. From this point on, I dont know what else could be done...