Bar30 - Deep Sensor with NanoPI NEO

Please help me if you can.

I bought the BM30 depth sensor.

I managed to get it to work perfectly on the Raspberry PI 3 model B v1.2

But now I have a challenge:

Make this sensor work on NanoPI NEO.

I have this need because the equipment I’m going to use needs to be extremely small and that would make the project much easier because the NanoPi NEO is very small.

But I can’t get the sensor to work.

It is not detected in the i2c protocol of NanoPI NEO.

Does anyone have any suggestions.

I’ve already tried to put the PULL-UP resistors but I’m not sure if I’m correct.

Can someone help me ?

This picture for i2cdetector

And site for reference: NanoPi NEO - FriendlyELEC WiKi

This my connections:

Hi @allacmc,

I’m not familiar with the NanoPi NEO, so can only provide general recommendations.

  • From your wiki link, it seems that there’s a tool called npi-config that you can use to enable/disable I2C
    • Make sure I2C is enabled
  • Your photo of the your current wiring is very hard to follow where each wire goes
    • Make sure the Bar30 wires go to the correct pins on your board (before turning on the board)

How complex is your project? If there’s not much computation required you may be able to use a microcontroller like an Arduino or a Raspberry Pi Pico instead of using a Linux-based SBC (single-board computer).

My project involves using the sensor with some Hardware that will send the information via MQTT protocol.

I understood that the MQTT protocol even on the arduino has several limitations when writing the software on the microcontroller.

That’s why I decided to walk with an SBC.

I’m going to use this sensor in conjunction with a media converter and forward it along with the ROV via fiber optics.

What do you think ?

You can walk with the Arduino (ATMEGA 328P) + ENC28J60 + BM30 Sensor and I will still need the MQTT library to trigger the depth, pressure and temperature data.

Still dealing with the use of the sensor in this SBC (NanoPI NEO) - Do I need these PULL-UP resistors?

OR does the NanoPI NEO board already have them?

The raspberry doesn’t need it. it works perfectly. without the pull-up resistors it looks like the board already has these resistors when it comes to the i2c protocol

There are no pull ups on the Bar30. I’m not sure about your nano pi, but it won’t hurt to add some to your circuit to check if it helps.

Some other comments:
I2C is designed for short distance communication. The 12inch cable on the sensor is already close to the limit for distance that can be acheived. It looks like you have added 12+ inches of cable for 24 inches total, this is a problem.

The high-speed communication of the MS5837 sensor in the Bar30 is especially sensitive to noise and small variations in the continuity/impedance of the connections. It is not advisable to use jumper wires / breadboards to connect the sensor because the contacts are often loose fitting and unreliable. The number of jumper wires you have used with the breadboard adds 4 points of wire-wire contact and 4 points of failure for the connection compared to connecting the sensor directly to the board. Use fewer jumpers, or try crimping or soldering to create a solid copper connection between the sensor and the computer.

Finally, check the I2C bus speed and reduce it. In certain cases, slower data rates can help overcome some of these problems.

1 Like