When Wire.requestFrom() returns zero, that means for normal sensors that the sensor did not acknowledge to its I2C address. Some sensors get confused and keep SDA low, then a few SCL pulses can take it out of it.
Manufacturer’s page of the MS5803-01BA : https://www.te.com/usa-en/product-CAT-BLPS0038.html, with datasheet.
Manufacturer’s page of the MS5805-02BA01 : https://www.te.com/usa-en/product-CAT-BLPS0015.html, with datasheet.
The Arduino Mega 2560 is the only Arduino board with 10k pullup resistors from SDA to 5V and from SCL to 5V.
As far as I know, there is no Arduino Mega 2560 Pro. The name “Arduino” may only be used for official Arduino boards. It is not allowed to sell something as “Arduino” when it is not made by Arduino.
Do you have a Robodyn Mega 2560 Pro ? https://robotdyn.com/mega-2560-pro-embed-ch340g-atmega2560-16au.html.
In the schematic are R7 and R9 pullup resistors to 5V, but the value is unspecified !
Let’s assume this:
- Robodyn has also 10k pullup resistors to 5V.
- The ATmega2560 has 30k internal pullup resistors to 5V.
- You have 10k pullup to 3.3V.
- There is nothing else on the I2C bus.
Then you have a voltage divider. The resulting voltage for SDA and SCL is 4.27V.
That is too much for the sensor. The maximum for SDA and SCL is 100% VDD according to the datasheet.
It is possible that Robodyn did not use 10k pullup resistors. Perhaps they are omitted on the board or perhaps they are lower than 10k.
If you have also other things on the I2C bus, then there can be more pullup resistors to 5V.
Did you take a glance at my page at Github ?
The best solution is to buy new sensors and a 3.3V Arduino board. Try to get that working. If that works well, then you can try the old sensors with the 3.3V board to check if they are really damaged.