Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sensirion/arduino-i2c-sdp readMeasurement(): Not enough data received error #1

Open
krishna243 opened this issue Jan 4, 2024 · 8 comments
Assignees

Comments

@krishna243
Copy link

I am using Arduino Uno and a custom developed PCB of SDP33 for getting differential pressure data. After uploading the program below output arrives
ProductNumber:50398084 SerialNumber:0x00333243513446
Error trying to execute readMeasurement(): Not enough data received
Error trying to execute readMeasurement(): Not enough data received
Error trying to execute readMeasurement(): Not enough data received
Error trying to execute readMeasurement(): Not enough data received
Error trying to execute readMeasurement(): Not enough data received
.
.
.
And so on. I have checked the connection and voltage. All are correct. The address used in the program is SDP3X_I2C_ADDRESS_0 i.e. 0x21 in which the ProductNumber and SerialNumber is receiving successfully. But the program is failing to read the data and providing the "Error trying to execute readMeasurement(): Not enough data received error continuously" error. No change in program except I2C address. Kindly help

@sdmueller
Copy link

Hi @krishna243

Not enough data received usually points to some issue with the sensor connection (e.g. too much noise or I2C signal out of specs)

How exactly are you connecting the sensor to the Arduino?

@sdmueller sdmueller self-assigned this Jan 5, 2024
@ImogenWren
Copy link

I have the same error. Sensors are connected along with many other types of senserion sensors using an i2c mux. No i2c address conflicts as each i2c bus has different mix of sensors. Reducing the data collection part of the program down to just the two SDP differential pressure sensors works, but something is causing this sensor to throw errors once the program is managing sampling all sensors. So I know that the wiring is correct. 10k pull up resistors are installed for SCL and SDA.

Program is well within the dynamic memory requirements. Compiling for Arduino Nano.

Sketch uses 19202 bytes (62%) of program storage space. Maximum is 30720 bytes.
Global variables use 1412 bytes (68%) of dynamic memory, leaving 636 bytes for local variables. Maximum is 2048 bytes.

@LeonieFierz
Copy link
Member

Closing issue due to inactivity

@tamerh
Copy link

tamerh commented Dec 11, 2024

Hi @LeonieFierz I am having same issue now. I could read pressure from sensor few months ago but now with same setup and I am getting this error Not enough data received. I am using the example code and I can also read Product Number and Serial Number which are also sent by i2C but for pressure reading I am getting this error.

@tamerh
Copy link

tamerh commented Dec 11, 2024

And another note is right now when I use the arduino 3.3v pin I can even not read the Product Number and Serial Number as well. but when using the 5v pin I can read these but still has error of Not enough data received

@LeonieFierz
Copy link
Member

Hi @tamerh
thank you for contacting us.
The issue you describe with problems reading out data is most likely due to a weak connection or power supply. Please check all the cables and connections again. If the error persist, please report back with details about your setup.
Best, Léonie

@LeonieFierz LeonieFierz reopened this Dec 13, 2024
@tamerh
Copy link

tamerh commented Dec 13, 2024

Hi @LeonieFierz In order to isolate issue I used simple setup. I used your example arduino code. With arduino mega I used 5v, ground, SDA and SCL pins with corresponding sensor pins via jumper cables. I also used 5k pull up resistor as well but in both case I can only read product number and serial number. I am using another pressure sensor ABP which also use i2c communication and with same setup it is working. So as 2 other people had same issue I feel there is something wrong somewhere else? Or you have any other suggestion? Thanks.

@LeonieFierz
Copy link
Member

Hi @tamerh

Arduino Mega has pull up resistors built in, so there is no need to add external pull ups. Not quite sure if you tested without the pull ups? A too high pull up resistance might make the low-high transition too slow and could well be the reason for the error you see with not receiving all data.

I quickly tested the setup with an Arduino Mega and a SDP3x Sensor connected with Jumper Cables, which works as expected to read out pressure and temperature. I have Sensirion I2C SDP version 0.1.0 of Sensirion Version 0.7.1 installed.

Best, Léonie

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants