1 1
darethehair

BME280 on Armbian 5.85 on Orange Pi PC Plus

Recommended Posts

Armbianmonitor:

Hello Folks!

 

Already successfully running an RTL-SDR device (for Flight Tracking) and U-Blox NEO-6M GPS (for GPS/NTP) on my Orange Pi PC Plus, and now wanted to try a BME280 weather chip, but ran into problems talking to it.  The 'i2cdetect' seems to be working fine:

darren@frodo10:~$ sudo i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --               

However, after many Googles with both C and Python code, I can't seem to successfully talk to this device :(

 

In my last attempt (using bme280_sample.py and modifying the reference to 0x76, installing 'smbus2', etc.):

darren@frodo10:~/Downloads$ sudo python bme280_sample.py
Traceback (most recent call last):
  File "bme280_sample.py", line 138, in <module>
    setup()
  File "bme280_sample.py", line 133, in setup
    writeReg(0xF2,ctrl_hum_reg)
  File "bme280_sample.py", line 19, in writeReg
    bus.write_byte_data(i2c_address,reg_address,data)
  File "/usr/local/lib/python2.7/dist-packages/smbus2/smbus2.py", line 391, in write_byte_data
    ioctl(self.fd, I2C_SMBUS, msg)
IOError: [Errno 6] No such device or address

Does the 'ic2detect' output mean that I have everything wired up properly?  Am I close to success?

 

Share this post


Link to post
Share on other sites
7 hours ago, martinayotte said:

Did you tried modifying "bus_number = 1" to "bus_number = 0"  ?

You can also try using this python library instead of "smbus2" : https://github.com/duxingkei33/orangepi_PC_gpio_pyH3

Hello!

 

Thanks for your suggestions.  Changing the 'bus_number' had no effect.  I implemented the python library you suggested, but I have not found app code specifically to test the BME280.  All of the code I have tested so far results in some sort of failure.  The latest one (from blackmagicboxes) results in the following:

darren@frodo10:~/Downloads/bmp280_p$ ./bme280_p
Failed to open the bus.

With successful 'i2cdetect', can I be confident my device is working and wired correctly i.e. that my problems are just a 'software' issue?

Share this post


Link to post
Share on other sites
12 hours ago, darethehair said:

With successful 'i2cdetect', can I be confident my device is working and wired correctly i.e. that my problems are just a 'software' issue?

I think so ...

 

12 hours ago, darethehair said:

I implemented the python library you suggested

You need to take your existing script and translate all the smbus calls to the new library.

Share this post


Link to post
Share on other sites

Update: Success!

 

Some articles that I read, including the one here, suggest using PA19/PA18 instead of PA12/PA11, so I swapped my wires around.  I also followed the suggestion to wire SDO to GND as that article mentions.  After doing this, and rebooting, the code I was trying started to work.  Why?  I have no idea, but I am happy.  Next (small) hurdle -- deal with the expected distorted values being encountered while the BME280 sensor is in the same coffee can as the Orange Pi :)

 

Thanks Martinayotte!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
1 1