Сорри за такой вид спама — 947 милисекунд при одинарном трансфере всего буфера(2628288байт) выжал на 15.6МГц из малинки — ваша первоначальная оценка очень правильная :)
Спасибо, что вашей статьёй вдохновили меня наконец разобраться с этим вопросом :)
Удалось поднять частоту SPI с 7.8МГц до 15.6Мгц (на малинке она меняется лишь в 2 раза вверх/вниз) — и единым копированием всего фреймбуфера получить 2.45-2.5 сек. А потом я заглянул уже по привычке во внутрь самой функции копирования буфера от WaveShare — и о чудо — там всё-равно побайтное копирование через API малинки. Которое поддерживает и трансфер буфера. Так что ожидаю дальнейшего ускорения — хоть и не большого (и уже близко к 2.3секундам на USB ;) )
В общем — я слегка в шоке от такого кода от Waveshare(хоть это и пример, но всё-таки) — это было малозаметно на дисплеях с низким разрешением — но на 2+МР экранах вылазит во всей красе;)
В общем — это грусть — внутри либы(от waveshare) — ранее заполненный фреймбуффер начинает писать по SPI по 2 байта, каждый раз включая/выключая шину на запись (1.3млн раз для этого дисплея).
При этом функция записи буффером тоже имеется, но не используется.
Если писать построчно с буффером — то вместо 7 сек уже становится ~3.5 сек
Дело не в самой передаче изображения по SPI — чуть больше 2х сек она занимает при забивании попиксельно(уходит по 1 байту), а в том, что именно функция сlearScreen(), у которой всего-то данных 1 байт(и 4 значаших бита) выполняется 7 сек — т.е. что-то сильно накосячено в самой либе. Я внутрь либы пока не заглявал — хочу посмотреть, можно ли что-то на USB сделать;)
Не успел в прошлый ответ добавить(USB/Win) — по каким-то причинам время пересылки полного изображения в полном разрешении (1872х1404) заниамет 2.3 сек, но если сделать его на 1 пиксель меньше (т.е. 1871х1404) — уже 1.3 сек. а для 1800х1350 — уже 0.97сек — т.е. непропорционально обьёму переданных данных.
Затвра проверю по SPI — но наверняка там аналогично.
У платы управления разные интерфейсы — и по SPI с малики больше 2 секунд занимает. Но есть и USB2 интерфейс и драйвер под Windows (upd: перепроверил) действительно время обновления близко к 0.4 сек, причём в режиме градации серого!
Но вот время пересылки(оно в windows, как оказалось, идёт в фоне) — 2297 милисекунд — т.е. суммарно порядка 2.7 секунды на всё.
upd: загрузку следующей страницы книги можно сделать тоже фоне, но вот для пользовательского UI у меня бродит мысль использовать лишь часть экрана
А не рассматривали дисплей Waveshare 7.8" E-Ink (1872*1404 )?- он подороже будет — но 300dpi это 300 dpi (мой уже приехал — потестил — просто прекрасен — но книжку не собрал ещё).
Использовал ThinkPad x230 + gf1050 — в играх есть некоторое падение производительности — но зависит от типа игры и размера её ресурсов — если всё влазит — то ближе к 5-10%(Civ6). В вычислительных задачах (CUDA/OpenCL, VK/GL Compute) — разница в пределах погрешности.
Оба устройства уже были в наличии(видео из сдохшего дектопа) — и живя на 2 дома (и летая самолётом между ними с минимумом вещей) — такой вариант был очень удобен.
upd: В случае более стационарного бытия это уже не такой интересный вариант
Не надейтесь — VideoCore VI(в RPi4) только по функциональности большой шаг вперед по сравнению с VideoCore IV(RPi1-3). По производительности разница в пределах 20-30%.
Кроме того — он не держит(в железе) минимум одну из фишек десктопного GL версии 3.0(GL_MAX_DRAW_BUFFERS 4 вместо 8) — так что 2.1 только — что родным OpenGL, что через Zink/Vulkan.
Пользование дестопами разное — у меня, например — Volta GPU и очень нужен — тренировать CNN, работать в Blender/рендерить с Cycles, поиграть. Кодирование в h265 обязательно(ещё не всю библиотеку фильмов с н264 перевёл). Без выхода на 2й монитор в качестве дестопа тоже бесполезен (вообще надо 3, причём 1 выход на 4к). Да и 128бит доступ к памяти (в сравнении с 32мя у малинки — и именно это причина текущего максимума в 8GB RAM — больше одним чипом Микрон не делает).
А вот PoE на десктопе совершенно не нужен — у вас же и так 3 монитора питаются рядом;)
Без gateway в нескольких сотнях км сейчас и в ближайшее время (т.е. пока ещё не существующие спутники версии 2.0 не будут составлять немалую часть группировки) тарелка работать не будет — просто будет «кирпич».
Ну и ещё момент с тем, как Startlink/SpaceX решит реагировать на появление их приёмников в таких странах — могут и заблокировать (ведь позиция антенны им известна с точностью до нескольких метров) — если им что-то понадобится от власть имущих таких стран или из-за нарушения пользовательского соглашения(например, касательно Марса ;) ).
Вот рядом серия статей про Starlink — там всё в деталях в 7 частях описано (пользовательский треминал вроде 4я и 5я).
Вы хотите спаять антенну на фазированной решётке? (ненамного проще той, что стоит на истребителях 4+ поколения). Ну и упомянутые в статье выше базовые станции — в Питере/Мурманске ещё ладно (когда в Финляндии/Норвегии запустят — оттуда достанут), а вот в Нижнем Новгороде уже не заработает, пока не появятся спутники версии 2.0 с прямым соединением друг с другом;)
Спасибо, что вашей статьёй вдохновили меня наконец разобраться с этим вопросом :)
В общем — я слегка в шоке от такого кода от Waveshare(хоть это и пример, но всё-таки) — это было малозаметно на дисплеях с низким разрешением — но на 2+МР экранах вылазит во всей красе;)
При этом функция записи буффером тоже имеется, но не используется.
Если писать построчно с буффером — то вместо 7 сек уже становится ~3.5 сек
сlearScreen(), у которой всего-то данных 1 байт(и 4 значаших бита) выполняется 7 сек — т.е. что-то сильно накосячено в самой либе. Я внутрь либы пока не заглявал — хочу посмотреть, можно ли что-то на USB сделать;)сlearScreen()занимает от 7 до 9 секунд.Ну и для сравнения сам дисплей(фрагмент) — шрифт Sans 30pt и линейка
Затвра проверю по SPI — но наверняка там аналогично.
Но вот время пересылки(оно в windows, как оказалось, идёт в фоне) — 2297 милисекунд — т.е. суммарно порядка 2.7 секунды на всё.
upd: загрузку следующей страницы книги можно сделать тоже фоне, но вот для пользовательского UI у меня бродит мысль использовать лишь часть экрана
Оба устройства уже были в наличии(видео из сдохшего дектопа) — и живя на 2 дома (и летая самолётом между ними с минимумом вещей) — такой вариант был очень удобен.
upd: В случае более стационарного бытия это уже не такой интересный вариант
Кроме того — он не держит(в железе) минимум одну из фишек десктопного GL версии 3.0(GL_MAX_DRAW_BUFFERS 4 вместо 8) — так что 2.1 только — что родным OpenGL, что через Zink/Vulkan.
А вот PoE на десктопе совершенно не нужен — у вас же и так 3 монитора питаются рядом;)
Главная задача — удержать цену в 35$ за версию В.
То, что вы описали — давно есть — Nvidia Jetson Xavier. с соответсвующей ценой;)
Vulkan 1.0 для малинки уже пару недель как интегрирован в master branch Mesa
Ну и ещё момент с тем, как Startlink/SpaceX решит реагировать на появление их приёмников в таких странах — могут и заблокировать (ведь позиция антенны им известна с точностью до нескольких метров) — если им что-то понадобится от власть имущих таких стран или из-за нарушения пользовательского соглашения(например, касательно Марса ;) ).
Вы хотите спаять антенну на фазированной решётке? (ненамного проще той, что стоит на истребителях 4+ поколения). Ну и упомянутые в статье выше базовые станции — в Питере/Мурманске ещё ладно (когда в Финляндии/Норвегии запустят — оттуда достанут), а вот в Нижнем Новгороде уже не заработает, пока не появятся спутники версии 2.0 с прямым соединением друг с другом;)