Orange pi gpio android
Vyacheslav-S,
по моему на фото другая модель платы ,на o-pi 4b два юсб порта и сетевой разьем не по центру. кто реально поюзал эту платку отпишитесь как она в деле.
Сообщение отредактировал apelsyn — 28.04.20, 22:32
apelsyn,
У меня Orange Pi 4 с EMMC. Я и не указывал что плата эта B.
Если вас интересует тип с буквой B, то ее отличие — отсутствие 1x USB3.0 HOST, но есть NPU SPR2801S.
Учтите — на этой модификации они 2.0, а на Pi 4 3.0.
Сообщение отредактировал Vyacheslav-S — 29.04.20, 06:15
sorry :rolleyes: я смотрел 4b.постоянно читаю ваши посты, не хотел вас обидеть. использовал ранее платы opi 2e ;opi pc2 . в графическом режиме подтормаживают ,ставил армбиан.использовал как десктоп.как с этой платкой(opi4b). планирую сделать моноблок из старого монитора .заказывать железку только собираюсь ,интересных статей про нее и обзоров оч мало.
Сообщение отредактировал apelsyn — 29.04.20, 07:37
Доброго времени суток.
1) на эту Апельсинку TWRP нет?
2) через что сделать полный бекап для дальнейшего использования?
Также разыскивается корпус.. Может есть уже где 3д модель для печати?
Сообщение отредактировал vpt-drive — 07.05.20, 00:17
Мне нужно установить и настроить нужный софт на Андройд, после чего сделать полный бекап для дальнейшего использования на другой плате. Из того что я знаю и видел — это удобно было делать через кастомный рекавери
Больше 50% владельцев телефонов — владельцы Андройд телефонов. Чем одноплатник отличается от смартфона?
Вопрос по режиму работы УСБ портов:
При попытке подцепить плату к ПК ничего не происходит (пробовал обычные порты и type c).
Те ощущение что порты работают только на «вход», возможно как то это настроить?
При этом в режиме reccovey+power через Android Tool проблем в работе с платой нет (те провод рабочий)
Источник
Orange pi gpio android
Для работы с GPIO в OrangePi не подойдут библиотеки и инструменты предназначенные для RaspberryPi, однако мне удалось найти библиотеку WiringOP основанную на библиотеке WiringPi.
git clone https://github.com/zhaolei/WiringOP.git -b h3
cd WiringOP
chmod +x ./build
sudo ./build
после установки проверяем работоспособность
gpio readall
покажет все порты, назначения и состояния
Настройка назначения портов GPIO при старте системы.
При наличии файла script.bin
в разделе /boot находим файл script.bin (если нет такого файла, а есть папка dts или файл с разрешением dts то пропускаем этот раздел и переходим к следующему) и конвертируем его в читаемый формат командой
bin2fex script.bin script.fex
у меня были отключены UART1 и UART3, в данном выводе UART порты все работают, но Вы можете переназначить их в режим IN или OUT с помощью WiringOP не редактируя файл script.bin
чтобы включить UART1 надо найти секцию [uart1] и в ней параметр использования порта uart_used, 0 — не используется, 1 — используется.
так же надо посмотреть порты, которые занимает UART
uart_tx = port:PG06
uart_rx = port:PG07
uart_rts = port:PG08
uart_cts = port:PG09
и исключить их из секции [gpio_para], точно так же делается и с остальными портами (SPI, i2c).
После внесенных изменений конвертируем обратно
fex2bin script.fex script.bin
и перезагружаемся.
При наличии DTB
для конвертирования бинарного файла dtb необходимо установить компилятор файлов dtb
apt-get install device-tree-compiler
у меня на Armbian Ubuntu 16.04 в папке /boot файлы dtb находятся в папке dtb, на других системах этот файл может быть в корне /boot, с помощью следующей команды конвертируем наш файл dtb в dts
dtc -I dtb -O dts -o sun8i-h3-orangepi-pc.dts ./sun8i-h3-orangepi-pc.dtb
где:
sun8i-h3-orangepi-pc.dtb — исходный бинарный файл
sun8i-h3-orangepi-pc.dts — файл который мы будем редактировать.
открываем файл sun8i-h3-orangepi-pc.dts в любом редакторе и ищем слово serial, у меня 4 таких секции следующего содержания
serial@01c28000 <
compatible = «snps,dw-apb-uart»;
reg = ;
interrupts = ;
reg-shift = ;
reg-io-width = ;
clocks = ;
resets = ;
dmas = ;
dma-names = «rx», «tx»;
status = «okay»;
pinctrl-names = «default»;
pinctrl-0 = ;
linux,phandle = ;
phandle = ;
>;
включение uart порта делается изменением параметра status = «okay»
после изменения сохраняем файл и конвертируем обратно
dtc -I dts -O dtb -o ./sun8i-h3-orangepi-pc.dtb ./sun8i-h3-orangepi-pc.dts
Использование GPIO с помощью WiringOP
для вывода справки по командам наберите
gpio -h
Если у Вас в файле script.bin назначены порты UART, SPI, i2c, то переназначить их можно не редактируя файл script.bin, достаточно задать их командой
gpio mode
где номер порта который соответствует номеру в строке wPi, для использования физического номера используйте команду
gpio -1 mode
например надо физический порт 8 определить на выход
gpio -1 mode 8 out
запишем в порт логическую единицу
gpio -1 write 8 1
Так же можно управлять двумя светодиодами на плате, зеленый
перезагружаем устройство и проверяем работу.
echo 1 > /sys/class/gpio_sw/standby_led/data
echo 0 > /sys/class/gpio_sw/standby_led/data
и красный
echo 1 > /sys/class/gpio_sw/normal_led/data
echo 0 > /sys/class/gpio_sw/normal_led/data
Соответственно включение и выключение.
Работа с i2c
У процессора Н3 имеется 3 порта i2c, однако на разъем GPIO выведены только 2, у меня по умолчанию был включен только порт 0, а порт 1 был отключен, его надо включить аналогично тому, как включали порты UART.
Для работы с i2c необходимо установить i2c-tools
apt-get install i2c-tools
данный пакет имеет программы
i2cdetect — проверка подключенных устройств — выводит адреса подключенных устройств
i2cdump — снятие дампа данных
i2cget — получение значения нужного регистра в подключенном устройстве. Опрашивается в формате i2cget
i2cset — запись значения в регистр подключенного устройства, команда в формате i2cset
где:
— i2c шина (0 или 1)
— адрес чипа
— адрес регистра
— значение регистра
подключаем устройства i2c к соответствующим портам OrangePi. Для того, чтобы выяснить по какому адресу у нас устройства i2c надо ввести команду
i2cdetect -y 0 для шины 0
i2cdetect -y 1 для шины 1
# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: — — — — — — — — — — — — —
10: — — — — — — — — — — — — — — — —
20: 20 — — — — — — 27 — — — — — — — —
30: — — — — — — — — — — — — — — — —
40: — — — — — — — — — — — — — — — —
50: — — — — — — — — — — — — — — — —
60: — — — — — — — — — — — — — — — —
70: — — — — — — — —
root@orangepipc:
# 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: — — — — — — — —
у нас по адресу 20 и 27 определились микросхемы PCF8574, для управления выводами у данной микросхемы адрес регистра не указывается, для чтения данных используем команду
i2cget -y 0 0x20
где флаг -y означает означает согласие на работу, если без этого флага использовать то чтобы получить данные надо ответить yes
запись значений происходит командой:
i2cset -y 0 0x20 0xff — подача на все порты pcf8574 высокий логический уровень
i2cset -y 0 0x20 0x00 — подача на все порты pcf8574 низкий логический уровень
вместо шеснадцатиричного значения возможно использовать десятичное
i2cset -y 0 0x20 255 и i2cset -y 0 0x20 0
соответственно
так же и двоичное
i2cset -y 0 0x20 $(( 2#11111111 ))
и
i2cset -y 0 0x20 $(( 2#00000000 ))
для включения первого и третьего вывода надо выполнить команду
i2cset -y 0 0x20 $(( 2#11111010 ))
для изменения состояния вывода можно использовать следующую команду
a=`i2cget -y 0 0x20` && i2cset -y 0 0x20 $(( $a ^ X ))
где X — имеет значения 1,2,4,8,16,32,64,128 для изменения состояния соответственно 1,2,3,4,5,6,7,8 вывода, сначала получаем значение регистра PCF85474 и присваиваем его переменной a, затем к этому значению выполняем операцию XOR.
Источник
Orange pi gpio android
if [ «$(id -u)» != «0» ]; then
echo «This script must be executed as root. Exiting» >&2
exit 1
fi
Fex2Bin=»$(which fex2bin)»
if [ «X$
apt-get -f -q -y install sunxi-tools
fi
Path2ScriptBin=»$(df | awk -F» » ‘/^\/dev\/mmcblk0p1/
if [! -f «$
echo «Can not find script.bin. Ensure boot partition is mounted» >&2
exit 1
fi
MyTmpFile=»$(mktemp /tmp/$<0##*/>.XXXXXX)»
trap «rm \»$
bin2fex «$
if [ $? -ne 0 ]; then
echo «Could not convert script.bin to fex. Exiting» >&2
exit 1
fi
cp -p «$
sed -i ‘/\[dvfs_table\]/a \
extremity_freq = 1296000000\
max_freq = 1200000000\
min_freq = 480000000\
LV_count = 7\
LV1_freq = 1296000000\
LV1_volt = 1320\
LV2_freq = 1200000000\
LV2_volt = 1240\
LV3_freq = 1104000000\
LV3_volt = 1180\
LV4_freq = 1008000000\
LV4_volt = 1140\
LV5_freq = 960000000\
LV5_volt = 1080\
LV6_freq = 816000000\
LV6_volt = 1020\
LV7_freq = 480000000\
LV7_volt = 980′ «$
fex2bin «$
if [ $? -ne 0 ]; then
mv «$
echo «Writing script.bin went wrong. Nothing changed» >&2
exit 1
fi
echo «Successfully repaired broken overvolting/overclocking settings. Reboot necessary for changes to take effect»
Сообщение отредактировал iiputilo — 30.06.21, 20:23
Предлагаю тему для обсуждения платы Orange Pi PC, версия за 15 уе (это важно, поскольку такой комплектации нет даже на офсайте). Была такая спец акция у производителя.
Обзор:
http://geektimes.ru/post/260912/
Её суть в том, что урезано всё что можно, даже выкинули дополнительный усб хаб, поэтому там только 3 USB вместо обычных 4-х, а также полное отсутствие SATA, WLAN, лан-порт только 100 мбит, нет кнопок reset и uboot. Зато есть USB OTG (через него устройство не питается!)
При этом процессор «опущенный» по частоте до 1.2Ггц AllWinner H3 SoC. А памяти все-равно 1Гб, что даже странно. Наиболее близкий аналог — Orange Pi 2, но по отзывам плата меньше по размерам, поэтому может быть проблема с поиском подходящих боксов.
И первые вопросы — где искать боксы и какие параметры у штекера питания (длина, диаметры внутр и наружн)?
Сообщение отредактировал -SunLion- — 29.09.15, 23:56
Сообщение отредактировал zavyazkin.ad — 22.09.15, 22:51
Тоже вначале грешил на кривые образы Но оказалось, что плата очень привередлива к SD-картам! У меня на разных картах один и тот же образ Android вёл себя по-разному и не загружался, в том числе и просто висел на лого H3. У меня плата исправно загружается с карточки SanDisk 4 Gb Class 4, но при этом отказывается воспринимать SanDisk 16 gb Class 10 и другие карты. В общем, нужно подбирать SD-карту.
Нормальная загрузка выглядит так: При включении, на экране монитора появляется логотип H3 (или другой логотип, в зависимости от образа), а на самой плате загорается красный светодиод. Далее, секунд через 5, светодиод на несколько секунд переключается на зелёный, а на экране всё тот же логотип, потом логотип сменяется анимацией и тут уже становится понятно, что операционная система загружается.
Думаю, что это информация окажется полезной всем владельцам: для питания Orange Pi PC идеально подошла зарядка от PSP, как по физическим, так и по техническим параметрам. А уж зарядку для PSP найти будет легко. Например, вот вариант за $2.58 вместе с доставкой.
Сообщение отредактировал CityAceE — 06.10.15, 01:14
Система Debian_wheezy_mini
Обращаю ваше внимание, все команды я выполняю от root‘а.
Изначально, после установки системы, устройство IR не доступно, так как не загружены соответствующие модули, в случае Orange Pi PC — это модуль sunxi_ir_rx
Идем /etc/ правим файл «modules»
добавляем строки:
apt-get update && sudo apt-get upgrade
перезагружаемся reboot
Проверяем загрузку модуля sunxi-ir-rx командой lsmod
# lsmod
Module Size Used by
sunxi_ir_rx 6793 0
gpio_sunxi 8233 0
8189es 887631 0
rt2800usb 13648 0
rt2x00usb 8311 1 rt2800usb
rt2800lib 42390 1 rt2800usb
rt2x00lib 32107 3 rt2x00usb,rt2800lib,rt2800usb
mac80211 331125 3 rt2x00lib,rt2x00usb,rt2800lib
[email protected]:
Также важным фактором, чтобы удостовериться, что все заработало, нужно проверить, появилось ли устройство ввода:
# cat /proc/bus/input/devices
I: Bus=0019 Vendor=0002 Product=0001 Version=0100
N: Name=»vmouse»
P: Phys=vmouse/input0
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=mouse0 event0
B: PROP=0
B: EV=7
B: KEY=70400 0 0 0 0 0 0 0 0
B: REL=143
I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name=»sunxi-ths»
P: Phys=sunxiths/input0
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=event1
B: PROP=0
B: EV=9
B: ABS=100 0
I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name=»sunxi-ir»
P: Phys=RemoteIR/input1
S: Sysfs=/devices/virtual/input/input2
U: Uniq=
H: Handlers=sysrq kbd event2 cpufreq_interactive
B: PROP=0
B: EV=100003
B: KEY=ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe
Name=»sunxi-ir» — /dev/input/event2 в моем случае это event2
самый верный способ проверить, то ли это устройство, это выполнить
cat /dev/input/event2 | hexdump
При нажатии на кнопки пульта в терминале видим
# cat /dev/input/event2 | hexdump
0000000 0349 5618 2b44 0004 0001 0040 0001 0000
0000010 0349 5618 2b53 0004 0000 0000 0000 0000
0000020 0349 5618 dc05 0007 0001 0040 0000 0000
0000030 0349 5618 dc0c 0007 0000 0000 0000 0000
0000040 034c 5618 026e 0009 0001 0043 0001 0000
0000050 034c 5618 027c 0009 0000 0000 0000 0000
0000060 034c 5618 be07 000c 0001 0043 0000 0000
0000070 034c 5618 be0d 000c 0000 0000 0000 0000
^C
[email protected]:
(Остановить процесс можно [Ctrl]+[C])
Компилируем демон, который будет следить за нажатиями
apt-get install build-essential git -y
git clone https://github.com/elopez/keybinder.git
cd keybinder
make install
проверяем
запускаем keybinder /dev/input/event2 и нажимаем на кнопки пульта
/keybinder# keybinder /dev/input/event2
Reading key input from /dev/input/event2 (sunxi-ir)
Loaded config items
Keycode 69 pressed
Keycode 64 pressed
Keycode 67 pressed
.
Идем /etc/ правим keybinder.conf
69,reboot
64,echo 0 > /sys/class/gpio_sw/normal_led/data
67,echo 1 > /sys/class/gpio_sw/normal_led/data
.
При нажатии кнопки пульта с кодом 67 вкючится красный светодиод на плате
Для автозапуска после перезагрузки
Идем /etc/ правим rc.local ……………..
до строки exit
добавляем строку
/usr/local/bin/keybinder /dev/input/event2 >/dev/null &
тестировал с подобными пультами
Сообщение отредактировал Илья Путило — 16.02.17, 18:57
Orange Pi Pc под нагрузкой хавает 650 мА .
От USB телевизора LG работает без нареканий.
Сообщение отредактировал alans — 12.10.15, 19:36
У вас Orange pi pc v1.2? Откуда лубунту ставили?
У меня лубунту, убунту и андройд нормально завелись (за исключением, что не работало часть усб портов и на одной прошивке сетевая карта). До этого были проблемы с блоком питания. Апельсинка к параметрам питания очень привязана, если будут небольшие отклонения в них, работать нормально не будет!
Да еще греется ппц. Под 70 градусов при активности!
Сообщение отредактировал mod3m — 14.10.15, 14:17
Схема Orange Pi PC
Температуру процессора можно контролировать командой
watch cat /sys/class/thermal/thermal_zone0/temp
and stop it with
ctrl+c
Сообщение отредактировал ua3nbw — 28.10.15, 19:21
dmesg | grep IR
выдает
IR RC5(x) protocol handler initialized
Все остальные протоколы можно заюзать , если кинуть проволочную перемычку на плате orange pi pc, с ИК на GPIO.
И использовать LIRC.
Или, пересобирать debian с другим драйвером.
Сообщение отредактировал velikashkin — 06.11.15, 18:15
Прошивка Андроид 4.4.2 от ZIDOO X1 v1.0.19 для Orange Pi PC
IMHO самая толковая прошивка с андроидом.
Плюсы:
— стоковый explorer умеет находить и монтировать samba и nfs
— автомонтирование флешек и дисков, размонтирование из explorer-а
— встроенный Remote Control (устанавливаете приложение на телефон и рулите девайсом)
— довольно приятный и шустрый интерфейс, удобно управлять с пульта
— настраиваемое автоотключение
— одновременный вывод звука на HDMI и AUDIO OUT
— работающий маркет из коробки
Источник