Барометр

Подскажите как подключить этот датчик, и как считать данные.
http://www.ebay.com/itm/271453913203?_trksid=p2059210.m2749.l2648&ssPageName=STRK%3AMEBIDX%3AIT

Много разных способов, в интернете всё есть.
Есть драйвер в ядре, есть куча разных программ для работы из юзерспейса на разных языках.

Вот например скрипты на питоне: https://learn.adafruit.com/using-the-bmp085-with-raspberry-pi/overview
Вот что-то на си: http://homes-smart.ru/index.php/oborudovanie/datchiki/datchik-davleniya-bmp085

Подключать удобнее всего к UEXT1, там i2c выведен на соответствующие пины и настроен. i2c может работать в двух режимах - аппаратном и программном, настраивается через Device Tree. Скорее всего у вас всё заработает из коробки: попробуйте подключить датчик и сделать i2cdetect

http://contactless.ru/wiki/index.php/Файл:WB3.5.png
http://contactless.ru/wiki/index.php/WB_SH_3.5:_Список_GPIO
http://contactless.ru/wiki/index.php/UEXT-разъемы

Подключил, сделал i2cdetect -y 0 и 1, ничего не находит.
Подскажите куда копать.

Как узнать WB вообще его видит или нет?

Непонятно, как понять. Бывает, что i2cdetect не видит, а потом общение с устройством работает. Бывает наоборот. Всё зависит от конкретного девайса, с i2c в этом плане сложно. У вас прошивка/ядро/dts какие?
Попробуйте обновить ядро (apt-get update, apt-get install linux-latest), может поможет.

Кто бы пальцем показал как запустить этот девайс.

Скорее всего ничего и не найдет, так как аппаратный i2c сейчас, похоже, просто выключен. Смотрите мой топик про MOD-RTC (http://contactless.ru/forums/topic/mod-rtc/)

Пересобрал дерево:

root@wirenboard:~#  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: -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@wirenboard:~#  i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Что-то можно по этому сказать? :

root@wirenboard:~# dmesg | grep i2c
[    0.500000] i2c i2c-0: Not I2C compliant: can't read SCL
[    0.500000] i2c i2c-0: Bus may be unreliable
[    0.510000] i2c-gpio i2c2.8: using pins 25 (SDA) and 23 (SCL, no clock stretching)
[    0.510000] imx23-pinctrl 80018000.pinctrl: pin LCD_ENABLE already requested by 80018000.pinctrl; cannot claim for 80058000.i2c
[    0.520000] imx23-pinctrl 80018000.pinctrl: pin-55 (80058000.i2c) status -22
[    0.520000] imx23-pinctrl 80018000.pinctrl: could not request pin 55 (LCD_ENABLE) from group i2c0.0  on device 80018000.pinctrl
[    0.530000] mxs-i2c 80058000.i2c: Error applying setting, reverse things back
[    1.500000] i2c /dev entries driver

Плохо настроили дерево. Предсказываю, что вы включили обе записи: для программного i2c и для аппаратного i2c на тех же самых ножках.

Судя по UU в i2cdetect, один из них в итоге победил и работает, подключенное устройство по адресу 57 у вас определилось.

И какаой i2c оставить правильно 0 или 1?

Я раскомментировал строки:

/* Uncomment no enable hardware i2c */

   i2c0: i2c@80058000 {
    pinctrl-names = "default";
    pinctrl-0 = <&i2c0_pins_a>;
    status = "okay";
   };

и перекоментировал строку из disabled в okay здесь:
 i2c2@0 {
   compatible = "i2c-gpio";
   gpios = <&gpio0 25 0 /* sda */
      &gpio0 23 0 /* scl */
     >;
   i2c-gpio,delay-us = <2>;        /* ~100 kHz */
   i2c-gpio,scl-output-only = <0>;
   i2c-gpio,sda-open-drain = <1>;

   pinctrl-names = "default";
   pinctrl-0 = <&i2c_gpio>;

   status = "okay";
   /*status = "disabled";*/

Где не так?

Первый блок - это аппаратный i2c, второй блок - это программный i2c на тех же ножках. Включать надо что-то одно.

Какой оставлять не знаю. Обычно аппаратный, но с некоторыми устройствами лучше работает программный.

Собрал отдельно 2 дерева с прогр i2c и аппаратным.
Не видит барометра.
А это показывает с аппаратным i2c даже с не присоединенным барометром (с программным пусто)

root@wirenboard:~#  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: -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Разъясните пожалуйста что это значит:

root@wirenboard:~# dmesg | grep i2c
[    0.500000] i2c i2c-0: Not I2C compliant: can't read SCL
[    0.500000] i2c i2c-0: Bus may be unreliable
[    0.510000] i2c-gpio i2c2.8: using pins 25 (SDA) and 23 (SCL, no clock stretching)
[    1.470000] i2c /dev entries driver

Что драйвер i2c не поддерживает clock stretching. Ничего плохого.

Подскажите куда копать далее, тк из топика http://contactless.ru/forums/topic/барометр/#post-2401
Я сделал всё.

Поддержка BMP180 BMP085
http://contactless.ru/wiki/index.php/BMP085

Добрый день всем!
А куда положить этот файл Imx23-wirenboard32.dtb и как с ним работать?
Спасибо

Кроме того, что положить файл в /boot/dtbs, нужно что-то еще комплилировать или просто перегрузить?