@@ -141,7 +141,11 @@ def __init__(self, i2c, *, address=_MPL3115A2_ADDRESS):
141141 pass
142142 time .sleep (0.01 )
143143 # Poll for the reset to finish.
144- self ._poll_reg1 (_MPL3115A2_CTRL_REG1_RST )
144+ # try/except is a hack for RP2040
145+ try :
146+ self ._poll_reg1 (_MPL3115A2_CTRL_REG1_RST )
147+ except OSError :
148+ self ._poll_reg1 (_MPL3115A2_CTRL_REG1_RST )
145149 # Configure the chip registers with default values.
146150 self ._ctrl_reg1 = _MPL3115A2_CTRL_REG1_OS128 | _MPL3115A2_CTRL_REG1_ALT
147151 self ._write_u8 (_MPL3115A2_CTRL_REG1 , self ._ctrl_reg1 )
@@ -198,7 +202,7 @@ def pressure(self):
198202 self ._write_u8 (_MPL3115A2_CTRL_REG1 , self ._ctrl_reg1 )
199203 self ._ctrl_reg1 |= 0b00000010 # Set OST to 1 to start measurement.
200204 self ._write_u8 (_MPL3115A2_CTRL_REG1 , self ._ctrl_reg1 )
201- # Poll status for PDR to be set.
205+ # Poll status for PDR to be set = press conversion complete
202206 while (
203207 self ._read_u8 (_MPL3115A2_REGISTER_STATUS ) & _MPL3115A2_REGISTER_STATUS_PDR
204208 == 0
@@ -211,8 +215,8 @@ def pressure(self):
211215 (self ._BUFFER [0 ] << 16 ) | (self ._BUFFER [1 ] << 8 ) | self ._BUFFER [2 ]
212216 ) & 0xFFFFFF
213217 pressure >>= 4
214- # Scale down to pascals .
215- return pressure / 4 .0
218+ # Scale down to hectopascals .
219+ return pressure / 400 .0
216220
217221 @property
218222 def altitude (self ):
@@ -248,7 +252,12 @@ def altitude(self):
248252 @property
249253 def temperature (self ):
250254 """Read the temperature as measured by the sensor in degrees Celsius."""
251- # Poll status for TDR to be set.
255+ # First poll for a measurement to be finished.
256+ self ._poll_reg1 (_MPL3115A2_CTRL_REG1_OST )
257+ # Initatiate a one-shot measurement
258+ self ._ctrl_reg1 |= 0b00000010 # Set OST to 1 to start measurement.
259+ self ._write_u8 (_MPL3115A2_CTRL_REG1 , self ._ctrl_reg1 )
260+ # Poll status for TDR to be set = temp conv complete
252261 while (
253262 self ._read_u8 (_MPL3115A2_REGISTER_STATUS ) & _MPL3115A2_REGISTER_STATUS_TDR
254263 == 0
0 commit comments