Автор Тема: Небольшой дисплей SPI ili9341 для orange pi zero  (Прочитано 1065 раз)

Оффлайн uriukti

Небольшой дисплей SPI ili9341 для orange pi zero
« : Апрель 18, 2017, 08:11:10 am »
Здравствуйте гуру и не очень. Уже не совсем уверен в том, что кто-нибудь сможет мне помочь. Как выяснилось людей действительно знающих linux очень мало и даже среди этого малого колличества большая часть живёт по принципу то ли вселенской лени, то ли по принципу унесу в могилу все свои знания linux без остатка. А на форумах сидят для того, чтобы тешить своё слабое так и не созревшее самолюбие. Я человек самодостаточный и такими детскими вещами не страдаю. Поэтому сначала дам инструкцию, которую уже разместил на другом сайте, а затем задам свои вопросы. Чтобы эту инструкцию написать, чтобы всё точно сошлось пришлось перелопатить гугл, ютуб и много разных других забугорных сайтов. Ибо наши либо ничего не знают, либо у них то, что я писал выше. Итак, пользуйтесь.




Инструкция по подключению дисплея на чипе ili9341 320X240 SPI 2.8" к ORANGE PI ZERO.
Инструкция верна для OS: ARMBIAN 5.25 Debian GNU/Linux 8 (jessie) 3.4.113-sun8i


1. Убедитесь, что ваше устройство именно - ili9341

2. Убедитесь, что в системе, в модулях есть ili9341 Если их там нет, скачайте из интернета и установите сюда копированием.

/lib/midules/3.4.113-sun8i/kernel/drivers/video/fbtft/

Драйвер будет иметь вид:

fb_ili9341.ko

3. Подключите дисплей к ORANGE PI ZERO.

Слева название пинов дисплея, справа цифра вывода ORANGE PI ZERO gpio:

SCLK (SCK) - 23
MOSI (SDA) - 19
MISO - 21
CS - 24
DC (AO) - 13
RST - 11
VCC - 4
GND - 25
LED - 15

4. По ssh (или другим способом) подключитесь и введите строку инициализации:

 $ sudo modprobe fbtft_device custom name=fb_ili9341 gpios=reset:1,dc:0,led:3 speed=16000000 fps=25 rotate=90 busnum=1


А затем:

$ con2fbmap 1 8

После этого экран оживает и просит ввести логин.

Что бы поменять размер шрифта можно воспользоваться программой console-setup:

sudo dpkg-reconfigure console-setup


Чтобы ваш дисплей самостоятельно включался в системе выполните всё в точности как в следующей инструкции:


Создайте новый файл /etc/modules-load.d/fbtft.conf

Впишите в него:

fbtft_device

Создайте новый файл:

/etc/modprobe.d/fbtft.conf

Впишите в него:

options fbtft_device custom name=fb_ili9341 gpios=reset:1,dc:0,led:3 speed=16000000 fps=25 rotate=90 busnum=1


По окончании отредактируйте:

/boot/armbianEnv.txt

впишите вниз:
extraargs="fbcon=map:8"


Перезагрузитесь. Дисплей должен подключиться.

---------------------------

А теперь вопросы.

1. Как изменить разрешение дисплея в системе armbian для консоли? Так как у меня консольный компьютер без GUI. Как сделать это используя штатные средства. Без grub, так как он элементарно не нужен. Как сделать его равным 320х240?
2. Как установить и использовать в системе меньший шрифт? Опять же, в консоли. Сейчас стоит Terminus 6x12 (framebufer only), и он хорош. Тонкий и маленький. Для установки его использовалась программа console-setup. Но нужно меньше хотя бы на 20%. 6х8 или 6х6. Или 4х8. В общем меньше.
3. Как отключить в armbian инверсию цвета? Так как сейчас в том же mc задний фон красный,  а тревожные сообщения синие. И так во всём.

Для новичков на форумах (старожилы меня поймут) когда вы пишите сюда свои комментарии или помогаете советами, вы помогаете не только мне, а всем тем, кто потом в гугле будет находить ссылку на этот форум.
ORANGE PI PC, ORANGE PI ZERO

Оффлайн robotbender

Re: Небольшой дисплей SPI ili9341 для orange pi zero
« Ответ #1 : Апрель 18, 2017, 12:08:58 pm »
Конкретно по ili9341 ни чего не могу сказать, тем не менее из опыта роботы с дисплеями могу сказать следующее:
Цитировать
1. Как изменить разрешение дисплея в системе armbian для консоли? Так как у меня консольный компьютер без GUI. Как сделать это используя штатные средства. Без grub, так как он элементарно не нужен. Как сделать его равным 320х240?
h3disp  меняет разрешение.

Цитировать
3. Как отключить в armbian инверсию цвета? Так как сейчас в том же mc задний фон красный,  а тревожные сообщения синие. И так во всём.
Цвет у тебя инвертирует не armbian а дисплей. При инициализации дисплея драйвер дает команду на инверсию и тут уже тебе самому разбираться нужно от чего.
Собственно сложного ни чего нет. Первым делом смотрим настройки самого драйвера https://github.com/notro/fbtft/wiki, есть вероятность что достаточно будет передать лииш один параметр. Если не получается смотри уже документацию к самому дисплею.

Цитировать
большая часть живёт по принципу то ли вселенской лени, то ли по принципу унесу в могилу все свои знания linux без остатка.
Полнейшая глупость и невежество.  Если ты гуглишь документацию по  armbian то она большей частью живет в англоязычном интернете, потому как проект еще достаточно молодой и разработчики со всего мира общаются на англицком. Опять таки из опыта могу сказать ее достаточно, По некоторым моментам прямо пошаговый все расписано.
При скачивании Armbian стоило обратить внимание на чем он основан на убунте или на дебиане, вот по ним уже документации более чем достаточно на многих языках.
« Последнее редактирование: Апрель 18, 2017, 12:29:48 pm от robotbender »

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 412
  • Лайков: 110
  • Карма: +14/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Небольшой дисплей SPI ili9341 для orange pi zero
« Ответ #2 : Апрель 18, 2017, 09:36:05 pm »
ili9341 у меня тоже нет.
h3disp  меняет разрешение.
Меняет, но только для HDMI или TV-out-а, о spi-дисплее он знать не знает.
IMHO разрешением и цветовой гаммой этого дисплея заведует сам модуль (драйвер) fb_ili9341.ko
и что то настроить можно, если конечно это предусмотрено в драйвере, передачей ему соответствующих параметров при загрузке.

UPD: Глянул даташит на ili9341, никаких разрешений кроме 240х320 она не умеет так что переключать там особо нечего.
Драйвер должен быть на него и заточен.
« Последнее редактирование: Апрель 18, 2017, 09:59:24 pm от AlDemin »

Оффлайн uriukti

Re: Небольшой дисплей SPI ili9341 для orange pi zero
« Ответ #3 : Апрель 19, 2017, 10:41:07 am »
Ребят, спасибо за ответ. Я не говорю, что на забугорных сайтах нет информации. Как раз там я её и нахожу. Я говорил о наших, людях, не считаюших способность помогать чем то необходимым. Возможно я ищу информацию не там. Но пока, многое пересмотрев, толкового не нашёл ничего. Ну да ладно, пух с ними.
   Про драйвер понял. Покапаю. А вот шрифт консоли подскажете как сделать меньше? Сейчас использую самый мелкий в console-setup, но хочется немного меньше.
« Последнее редактирование: Апрель 19, 2017, 10:42:44 am от uriukti »
ORANGE PI PC, ORANGE PI ZERO

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 412
  • Лайков: 110
  • Карма: +14/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Небольшой дисплей SPI ili9341 для orange pi zero
« Ответ #4 : Апрель 19, 2017, 11:27:43 am »
Надо искать и подключать более мелкие шрифты, если они существуют и это возможно.
Или еще мысль, но не уверен, что прокатит с этим драйвером, это когда на экран с меньшим разрешением выводиться фреймбуфер бОльшего размера:
как на нашей же апельсинке на TV выход в режиме 720х576 может выводиться 1920х1080, но про читабельность такого изображения я не скажу ничего, его просто нет.


Оффлайн uriukti

Re: Небольшой дисплей SPI ili9341 для orange pi zero
« Ответ #5 : Апрель 19, 2017, 02:44:57 pm »
А как сделать это? В сети инфы полно. Но начинаешь делать и оказывается, что это не подходит к моему дистру и то не подходит и т.д. Как имено в armbian можно в консоль новый мелкий шрифт добавить? Чтобы console-setup его увидел? Было бы здорово понять.
ORANGE PI PC, ORANGE PI ZERO

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 412
  • Лайков: 110
  • Карма: +14/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Небольшой дисплей SPI ili9341 для orange pi zero
« Ответ #6 : Апрель 19, 2017, 04:37:57 pm »
Что то я с наскока ни одного шрифта меньше 6х12 не нахожу, если нашел, кинь ссылку попробуем поставить.

Оффлайн uriukti

Re: Небольшой дисплей SPI ili9341 для orange pi zero
« Ответ #7 : Апрель 20, 2017, 09:31:41 pm »
Я поищу ещё, но на вскидку этот например:

http://ru.fonts2u.com/atari-small.%D1%88%D1%80%D0%B8%D1%84%D1%82

Кстати, настолько хочется иметь хороший мелкий шрифт, что взялся бы сам написать. Только знать бы в чём в linux можно это сделать. В формате psf.

Ещё:
https://github.com/kimperator/plugapps_PKGBUILDs/blob/master/z2-console-font/5x8.psf.gz
« Последнее редактирование: Апрель 20, 2017, 10:15:45 pm от uriukti »
ORANGE PI PC, ORANGE PI ZERO

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 412
  • Лайков: 110
  • Карма: +14/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Небольшой дисплей SPI ili9341 для orange pi zero
« Ответ #8 : Апрель 21, 2017, 08:35:29 pm »
Первый это ttf, его как то конвертить нужно.
Второй вроде то что надо, я его попробовал подключить на обычном компе с убуну - он почему то крупнее мелкого терминуса.
Еще немного погуглил, нашел упоминание об утиллитах конвертирования psf2txt и обратно.

ps: Раздразнили, заказал себе такой дисплей.

Оффлайн uriukti

Re: Небольшой дисплей SPI ili9341 для orange pi zero
« Ответ #9 : Апрель 22, 2017, 07:54:51 am »
Вот у меня почему-то такая же проблема. Другие шрифты, которые должы быть по идее меньше при их выборе становятся больше. Ничего не понимаю. И как же их правильно ставить тогда

А дисплейчик хороший, сам то  он работает хорошо. ) Думаю вам понравится в целом.
« Последнее редактирование: Апрель 22, 2017, 07:57:43 am от uriukti »
ORANGE PI PC, ORANGE PI ZERO

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 412
  • Лайков: 110
  • Карма: +14/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Небольшой дисплей SPI ili9341 для orange pi zero
« Ответ #10 : Апрель 22, 2017, 08:52:04 pm »
Нашел вот тут:
https://sourceforge.net/projects/nafe/?source=directory
редактор psf-шрифтов.
В принципе все понятно как делается, можно поизвращаться.

Оффлайн uriukti

Re: Небольшой дисплей SPI ili9341 для orange pi zero
« Ответ #11 : Апрель 24, 2017, 11:21:57 am »
Инверсию цвета победил добавив в конце строки инициализации bgr=1. Остальные вопросы актуальны!!!

P.S. Вот ещё очень важная вещь. Это правильная инструкция для настройки языков и локалей в этой системе на сегодня:
https://mnorin.com/console-cyrillic-i-systemd-v-debian.html
« Последнее редактирование: Апрель 24, 2017, 12:46:06 pm от uriukti »
ORANGE PI PC, ORANGE PI ZERO

Оффлайн uriukti

Re: Небольшой дисплей SPI ili9341 для orange pi zero
« Ответ #12 : Апрель 25, 2017, 11:16:01 am »
Нашел вот тут:
https://sourceforge.net/projects/nafe/?source=directory
редактор psf-шрифтов.
В принципе все понятно как делается, можно поизвращаться.

Чёт не пашет он у меня...Проверьте у себя, не пойму, что делаю не так.
ORANGE PI PC, ORANGE PI ZERO

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 412
  • Лайков: 110
  • Карма: +14/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Небольшой дисплей SPI ili9341 для orange pi zero
« Ответ #13 : Апрель 25, 2017, 09:13:12 pm »
Что не работает? не собирается или не конвертирует?

Вот к примеру "разобраный" Терминус:
« Последнее редактирование: Апрель 25, 2017, 09:25:22 pm от AlDemin »

Оффлайн uriukti

Re: Небольшой дисплей SPI ili9341 для orange pi zero
« Ответ #14 : Апрель 25, 2017, 09:26:16 pm »
Я сделал всё так, как было сказано в readme.  Распаковал архив. В консоли выполнил make all. Произошло нечто быстрое с использованием языка си. И появились два новых файла в этой же директории. Далее в консоли пытаюсь выполнить те самые команды как в примере, но консоль пишет, что команда не найдена. Вот и всё. При использовании sudo тоже самое.

Кстати. Тот самый шрифт, который 5x8, закинул в /usr/share/consolefonts и командой:
$ setfont blabla5x8.psf.gz
Этот шрифт устанавливается и его размер реально 5x8. То, что нужно. Но, там нет кириллицы. Вот я и хочу повозиться и сделать свой такой, но с кириллицей. Только бы прога эта заработала.
ORANGE PI PC, ORANGE PI ZERO