Получилось: Raspberry Pi и китайский TFT 3.2″

Действуя по проверенной схеме:

  1. купить, не заподозрив подвоха
  2. потратить кучу времени без результатов
  3. заменить устройство, которое будет управлять дисплеем
  4. опять не получить результатов
  5. офигеть от вот этого вот всего
  6. начать вдумчиво искать в интернетах
  7. *
  8. PROFIT!

…мне удалось заставить ноунеймовый дисплей работать с Raspberry Pi 3 и её предшественницей — Model B+ (Raspberry Pi 1).

*можно было не покупать более свежую модель Raspberry Pi, а просто правильно опознать модель дисплейного модуля, хотя тут без везения не обошлось — мог бы ничего и не найти про него.

Сначала не получилось:

Сначала я искал по названию контроллера (ili9341), и вышел на страничку MGD Blog — Getting an ILI9341 SPI screen working on the RaspberryPI

Там я нашёл команду для включения фреймбуфера для дисплея (не забудьте активировать SPI в raspi-config, или напрямую в /boot/config.txt), подключённого через GPIO:

sudo modprobe fbtft_device custom name=fb_ili9341  gpios=reset:25,dc:24,led:18 speed=16000000 rotate=90 bgr=1

Это не дало результатов, в dmesg писало, что не может задействовать 25-й пин для ресета, ибо он занят, или что-то в таком духе. Поискав, где вообще этот пин расположен, я обнаружил, что дисплей к нему в принципе не подключён — колодка с контактами дисплея не подсоединяется к нему, потомучто она короче на несколько пинов, чем шина GPIO.

После этого я решил, что стоит поискать альтернативные пути. И тогда всё получилось.

Меняем подход:

По названию и упоминанию контроллера тач-скрина получилось найти магазин производителя оригинального дисплея, клон которого я и купил. Гуглил по 3.2 rpi display ili9340 xpt2046«, вышел на http://www.waveshare.com/3.2inch-rpi-lcd-b.htm, что по виду экрана и кнопок было один-в-один с купленным мною на Алиэкспрессе, но вот обратная сторона заметно отличалась. Внизу страницы производителя так же был набор фото оригинальных и пиратских дисплеев: http://www.waveshare.com/img/devkit/general/RPi-LCD-Anti-Piracy-l.jpg — мой был в списке пиратских (3.2″).

Добиваемся вывода картинки на экран:

После этого я поискал по «waveshare 3.2 fbtft rpi» — попал на https://github.com/notro/rpi-firmware/issues/6

Там я уже узнал, что можно завести этот дисплей командой

sudo modprobe fbtft_device custom name=fb_ili9341 gpios=dc:22,reset:27 speed=48000000 rotate=90 bgr=1

И это заработало!

После, порывшись в Вики у fbtft я набрёл на https://github.com/notro/fbtft/wiki/FBTFT-RPI-overlays, где чудным образом была ссылка на https://github.com/swkim01/waveshare-dtoverlays.

Последовав пунктам инструкции, смог собрать и прописать в конфиге оверлей для моего китайского экранчика — теперь он включается автоматически в процессе загрузки RaspPi.

Для работы в консоли на этом экране — нажимаем Alt+Ctrl+F1. Для переключения на экран HDMI — Alt+Ctrl+F7(или F6).

Автор

Dmitry

Инженер, любитель котиков и плохой погоды за окном.

Добавить комментарий