Комментарии 77

У нас в городе на радиотехнике это тянуло бы на диплом. Но преподы рассказывали, что наши дипломные работы в Москве превращаются в курсовые. Это понятно хотя бы из того, что на радиотехнику у нас поступают люди, которые никогда не паяли, а их там этому и не учат, поэтому паяльник приходится брать уже во время написания диплома.

Курсовая? Точно? Я помню как устроился на работу, где 3 человека аж одну дипломную работу делали, так там качество работы даже на курсовую одного с натяжкой тянуло. А здесь всё же поболее курсовой будет.

Waveshare 7.5inch E-Ink, прикольный дисплей, вроде как цветной даже есть. Если бы еще подстветку как у paperwhite

А почему не просто в сон? ST утверждает, что ток потребления в глубоком сне 2.95 мка. А питание на флешку winbond можно подавать от порта (с ножки или с двух ножек, если тока не хватит) контроллера STM32h7.
Идея гасить все, мне понравилась больше, так как универсальна, вроде как. Отработать и использовать где то еще
Может и не такая плохая идея выключать полностью — иногда гаджеты виснут, не помогает даже кнопка reset если она вообще есть, единственный путь вернуть их к работе — отключить батарею и кратковременно закоротить контакты питания. Если батарея несъёмная, а корпус неразборный это может быть проблемой.

Книга получилась отличная. Своя книга позволяет реализовать любой каприз в удобстве использования и функциональности, а не то как их видит производитель.
Да, наверное, это вопрос вкуса конечно, но работающий контроллер даёт больше возможностей. Часы там, статическая память. И это я к току покоя W25 флешки, что ее как раз можно просто питать от ножек. Да и не только ее. А 3 мка… Можно поставить небольшую солнечную панельку и суперконденсатор и обойтись вообще без батарейки.
Вот только в режиме сна (когда сохраняется вся память) потребление >150 мкА. Впрочем, 4k оперативки в backup domain при потреблении 2.5 мкА тоже на многое хватит.
Да я в курсе.я с ними работаю. Очевидно, что имел в виду backup domain, с его 4K Ram -ом.А ещё, во время работы с дисплеем можно понижать клоск. Его пара секунд обновления экрана, это можно много энергии сэкономить.
А не лучше на время обновления в неглубокий сон уходить? Он же вроде по завершении операции умеет дергать ножкой BSY, по ней пусть контроллер просыпается.
Режим отключения плох еще тем (помимо сброса контроллера), что очень мало прерываний работает. Разве что RTC да пара специальных ножек.
Добрый день. Отлично получилось. А шрифт, я так понимаю, графический, не векторный? Просто выглядит плохо, как векторный без антиалиазинга. Если растровый, то подобрать бы шрифты по-лучше. Допустим тут. Файлы с расширением fon
он и есть без сглаживания, так как нет градаций серого. в этом и проблема. Я их до сих пор перерисовываю, пока устоялся только основной шрифт
Возьмите готовый. Их много со времён DOS.
Один из лучших в русификаторе keyrus. com
А может и не надо стараться улучшить шрифт?
Идеального сглаживания всё равно не выйдет, а «полуидеальный» шрифт мозг будет воспринимать фальшивым, недоделанным.
«Рваный», нечеткий шрифт мозг так и воспринимает, как есть, не пытаясь запускать улучшайзеры, на картинку с глаз.
На моей читалке есть три уровня детализации, так вот чёткий шрифт выглядит красиво, но глаза быстро устают его читать, а вот самый корявый шрифт воспринимается как типографский, как будь то расплылась краска на бумаге из под печатного пресса.
— Книга не должна требовать предварительной конвертации файлов электронных книг перед загрузкой, то есть отображать формат .FB2 как есть.

Очень часто fb2 пакуют зипом (*.fb2.zip). В идеале, научить открывать файлы fb2.zip так сказать «искаропки».

А не замеряли, что тратит больше энергии, обновить экран или светить светодиодом?
И через какое время в меню светить становится не выгодно?

Обновить экран менее затратно, но задержка на обновление после каждого нажатия — бесит. Уйти от обновлений при навигации, это была цель. лучший вариант — вместо диодов поставить кнопки — 12 штук, это мне задачка на будущее (с точки зрения реализации в корпусе)
По первой фотографии я сначала принял горизонтальные планочки за толкатели кнопок.

Интересно, а кто-нибудь пробовал использовать устройство с E-Ink для набора текстов?
Хочется иметь устройство, с которым бы можно было работать на ярком свету.

Медленно и неудобно. Можно, конечно, вспомнить детство и тормозящий текстовый редактор, когда сначала наколачиваешь не глядя на экран текст, а потом ждёшь, как отрисуется, и надеешься, что нигде не опечатался, но зачем?

Очень хочется совместить пляжный отдых и работу.


экран слепнет

image

По-моему, в такой постановке задача идеально не решается. Можно попробовать поляризационные очки или плоскую линзу-поляроид на экран.
Да, в теории. В e-ink экранах есть т.н. однобитный режим обновления — только чёрный/белый цвет, без градаций серого, без полного обновления картники.
Напр. для Nook'ов есть NoRefresh, который умеет включать этот режим.

Angry Birds, 1-bit style


Не очень удобно (т.к. нужно его каждый раз запускать/включать/выключать), но работает. В идеале, этот режим должен включаться автоматически (напр. быть фичёй текстового редактора читалки).
Для текста идеальный режим, заодно максимизирующий контрастность.
Не все поддерживают однобитный режим, даже обновление части экрана поддерживают не все.
Современные E-ink очень даже можно использовать для набора текста. Можно посмотреть на Onyx Boox Max который подключается как внешний монитор. Да и вообще выпускаются книжки с андроидом, где можно устанавливать подходящие текстовые редакторы.
Прекрасная работа! Данный экран поддерживает возможность частичного обновления указанной прямоугольной области?
Нет :(. Я на самом деле, когда выбирал дисплей повелся, что в мануале есть команды передачи кастомной области, но оказалось что это просто регион обновления буфера дисплея, а обновляет картинку он все равно по всей поверхности.
Q6 на схеме нарисован неправильно.
Причина тому может быть в прыжках напряжения при переходе АКБ на холостой ход, либо в том, что резистор имеет паразитную индуктивность и получается колебательный контур, а может еще в чем-то.

Причина в том, что конденсатор стоит не между затвором и истоком, а неправильно.

Флеш или китайская подделка, или неправильно подаёте команду сна, у меня 25Q128 из Элитана в сне потребляет микроамперы из даташита.
Уточните пожалуйста, именно Q6? он отвечает за переключение источника питания (внешнее или АКБ) конденсатор на затворе даст инертность в преключении. Или Q2? тогда предложенное включение не будет отличаться от использования вообще без ключа (быстрый разряд как я и писал).
Про хорошие и плохие 25Qx я тоже указал и правильные я видел (как и написал), так что про китайцев — в точку, только думаю не подделка, а отбраковка, которая распродается на Алике
При указанном на схеме включении плюс с батареи всегда проходит на выход через паразитный диод транзистора, надо повернуть истоком на батарею.

У Q2 по схеме с общим стоком минимальное падение на канале — вольта 1,5...2, при разряде батареи может не хватить для включения преобразователя. Заменить биполярным, резисторы и задержка те же. Конденсатор перенести параллельно R29.
добавил в схему как предложено

Если C36 установить на как предложено -> на C39 то, Q2 не нужен, вход 3_U4 кондер будет быстро разряжать (на линии помеченой KT1 потребление высокое).
При падении на АКБ ниже 3.4V не запуститься LDO. поэтому потери значения не имеют. На самом деле дребезг связан с моделью исполнения резистора R30. там при замере красивые преодические колебания. При замене резистора на резистор другого исполнения (тонкопленочный вроде называется, в зеленый такие красят) все выравнивается. Либо R29 и R30 можно вообще убрать, тогда все идеально, только время открытого ключа сложно прогнозируется (от 10сек до минуты)
вот снял АЦПшкой контроллера кривую на затворе Q2 и в Экселе превратил в график

по X — время шагом 0,1 сек по Y напряжение *100.
R29 удален.
Поддержка питания закончена в точке x=13 в точке x=31 вероятно питание первый раз отключено. При установленном R29 кривая колеблеться конечно, но после первого закрытия транзистора падает как курс рубля.
Q6 на схеме нарисован неправильно.
Всё правильно. Q6 работает в качестве диода. Стандартная схема переключения питания.
Не проще ли плате распаять кучку ОЗУ с работой от батарейки как в BIOS? Если не будет быстрой замены аккумулятора, то можно сделать писание ОЗУ от него. Так быстрее будет, да и износа у нее нет. Еще можно было вместо светодиодов использовать индикацию на экране, экономия энергии, места на плате, толщины девайса как никак. WS2812 не лучший выбор для индикатора одного цвета в портативном устройстве т.к. у них 3 цвета и они потребляют энергию на холостом ходу. Ты экономишь совсем немного на энергосбережении ядра, но при этом светодиоды жрут как не в себя даже если не работают. Для курсовой отлично, но для нормального устройства на каждый день слабенько.
Подключение ОЗУ на ЛУТе не развести. Много раз пробывал и в итоге заказывал плату делать в Резонит. Хотя ОЗУ преводит всю поделку на другой уровень (есть место под целые файлы), но это уже совсем другая задача и тогда можно просто взять Малину Зеро.
WS2812 — обесточены, кроме времени когда они необходимы, по схеме видно.
Экономиться не потребление ядра, а на отключении всего, что выведено на шину питания
При отображении индикации на экране индикация может быть активна всегда, даже с выключенным устройством. А когда ws2812 активны их контроллеры жрут по 2ма на штуку. Для включения WS2812 нужно дергать ногой GPIO > увеличение потребления. Если использовать индикаторы на экране, то можно значительно сэкономить на разводке платы и включать индикацию на продолжительное время, если же необходимы именно световые индикаторы, то простые smd-хи были бы предпочтительней. WS2812 нужны в основном для использования когда светодиодов должно быть достаточно большое количество, иначе они безсмыслены.
Так WS2812 это План В, исключительно потому, что мне цвет в Плане А не понравился )) Под План А (а там именно SMD, хотя и WS2812 это тоже SMD с потреблением 5mA) уже жду посылку с «теплыми белыми» диодами
«может быть активна всегда, даже с выключенным устройством» — не может. посмотрите схему
E-ink при отключении питания сохраняет свое состояние. Если индикатор был бы на экране(стрелка, точка, текст и пр.), то при отключении питания светодиоды бы отрубались, а изображение на экране оставалось вместе с наэкранным индикатором.

Устройство нравиться очень! +1 статьи и +1 в карму.


Но! Шрифты получились на троечку. А их так просто вылизать до совершенство. И тогда получится шедевр.


Ну и еще если в русском есть простой алгоритм переноса слов (в болгарском есть), то он совершенно не навредит. ;) Выравнивание будет лучше и не будут такие большие дыры на местах.

Вторая статья за неделю про opensource читалки) Тенденция не может ни радовать)

На рынке появились относительно дешевые E-ink Экраны.
Будет еще много интересных самоделок. Муську (mysku) еще можно мониторить на эту тему)

Спасибо за статью! Прикольно, что помимо разработки взаимодействия ЦПУ-Экран-Память пришлось вникать, например, в особенности управления питанием и коммутацией Аккумулятор-Внешнее питание. Если позволите, вопросы:
1. Сколько времени ушло от идеи до готового устройства? Дни месяцы всего и «чистое» время в часах. В каком темпе велась разработка?
2. В каких пропорциях примерно потрачено время по основным этапам создания читалки?
3. Если не секрет, основная работа насколько близка-далека от данной разработки?
4. Какие сомнения были в процессе?
5. Какие неожиданные грабли были (не очевидные места, в которых потрачено времени сильно больше, чем ожидалось)
6. У Процессора многие ноги не использованы, был ли резон использовать более младший процессор, вплоть до STM32F103, если уж оставаться в рамках STM32? Какой минимальный STM32 ориентировочно «потянет» разработку?
7. Какой багаж знаний и навыков до старта был из пригодившегося?
8. Какие ошибки/грабли посоветуете избегать при повторении своего, похожего по уровню сложности, DIY любительского устройства?
Если позволите, опросник проходить не буду :)
Если кратко:
-изначально все делалось на F407vet — нехватило ОЗУ (192K)
-Общее время: сколько то вечеров в течении пары месяцев, 50% времени — шрифты и корпус
А не рассматривали дисплей Waveshare 7.8" E-Ink (1872*1404 )?- он подороже будет — но 300dpi это 300 dpi (мой уже приехал — потестил — просто прекрасен — но книжку не собрал ещё).
его и хотел, но не поверил характеристикам. он действительно обновляется за 0.4 секунды?
У платы управления разные интерфейсы — и по SPI с малики больше 2 секунд занимает. Но есть и USB2 интерфейс и драйвер под Windows (upd: перепроверил) действительно время обновления близко к 0.4 сек, причём в режиме градации серого!

Но вот время пересылки(оно в windows, как оказалось, идёт в фоне) — 2297 милисекунд — т.е. суммарно порядка 2.7 секунды на всё.

upd: загрузку следующей страницы книги можно сделать тоже фоне, но вот для пользовательского UI у меня бродит мысль использовать лишь часть экрана
Это радует. значит следующая задачка Waveshare 7.8" E-Ink + STM32 + MT48LC16M :)
Я ещё буду разбираться, но при работе по SPI через IT8951 вообще результаты грустные — библиотечная функция сlearScreen() занимает от 7 до 9 секунд.

Ну и для сравнения сам дисплей(фрагмент) — шрифт Sans 30pt и линейка
image
IT8951 на SPI по даташиту может разгоняться до 24 Mгерц. как я понимаю на дисплее чуть больше 2 мегапикселей по 4 байта на каждый. С учетом накладных расходов, наверное в 1 секунду уложиться шанс есть. Шлейф позволяет по 8080 зацепиться?
Дело не в самой передаче изображения по SPI — чуть больше 2х сек она занимает при забивании попиксельно(уходит по 1 байту), а в том, что именно функция сlearScreen(), у которой всего-то данных 1 байт(и 4 значаших бита) выполняется 7 сек — т.е. что-то сильно накосячено в самой либе. Я внутрь либы пока не заглявал — хочу посмотреть, можно ли что-то на USB сделать;)
В общем — это грусть — внутри либы(от waveshare) — ранее заполненный фреймбуффер начинает писать по SPI по 2 байта, каждый раз включая/выключая шину на запись (1.3млн раз для этого дисплея).

При этом функция записи буффером тоже имеется, но не используется.

Если писать построчно с буффером — то вместо 7 сек уже становится ~3.5 сек
Удалось поднять частоту SPI с 7.8МГц до 15.6Мгц (на малинке она меняется лишь в 2 раза вверх/вниз) — и единым копированием всего фреймбуфера получить 2.45-2.5 сек. А потом я заглянул уже по привычке во внутрь самой функции копирования буфера от WaveShare — и о чудо — там всё-равно побайтное копирование через API малинки. Которое поддерживает и трансфер буфера. Так что ожидаю дальнейшего ускорения — хоть и не большого (и уже близко к 2.3секундам на USB ;) )

В общем — я слегка в шоке от такого кода от Waveshare(хоть это и пример, но всё-таки) — это было малозаметно на дисплеях с низким разрешением — но на 2+МР экранах вылазит во всей красе;)
Сорри за такой вид спама — 947 милисекунд при одинарном трансфере всего буфера(2628288байт) выжал на 15.6МГц из малинки — ваша первоначальная оценка очень правильная :)

Спасибо, что вашей статьёй вдохновили меня наконец разобраться с этим вопросом :)
Спасибо и вам, я сильно сомневался в этом дисплее, а вы потестили )
Не успел в прошлый ответ добавить(USB/Win) — по каким-то причинам время пересылки полного изображения в полном разрешении (1872х1404) заниамет 2.3 сек, но если сделать его на 1 пиксель меньше (т.е. 1871х1404) — уже 1.3 сек. а для 1800х1350 — уже 0.97сек — т.е. непропорционально обьёму переданных данных.

Затвра проверю по SPI — но наверняка там аналогично.

Идея с диодами необычна, но не превышает ли потребление этих диодов ту мощность, которая расходуется на перерисовку экрана? (в случае если пункты меню подствечивать непосредственно)

Обновить экран менее затратно, но задержка на обновление после каждого нажатия — бесит. Уйти от обновлений при навигации, это была цель.
Лучший вариант — вместо диодов поставить кнопки

Имею в хозяйстве старинную читалку Azbooka и там сделано как раз так с кнопками, на фоне тачскрина выглядит архаично

По поводу шрифтов. Давным-давно в далёкой-далёкой галактикеещё во времена AVR8 я сделал простой конвертор любых установленных шрифтов в си файл. Не идеален, но если он вам пригодится — могу скинуть. Это всё же проще чем неделями рисовать вручную :-)
я тоже сделал такой конвертер (курсив именно им забран), но после него надо каждую литеру все же редактировать, косые тонкие линии идут пунктиром или просото не видны на такой маленькой матрице символа
Красивый, стильный корпус, если не считать светлых вставок сверху и снизу. Интересно, сколько он весит?

Схема содержит транзистор SI1308, это оказался самый «уникальный» компонент
В чём «уникальность»?

подходят только специфичные от BQ
Что такое «BQ»?

Текст, судя по изображению «Вспомним кто такие Хоббиты», не очень удобен для чтения: где-то большие пробелы, где-то наоборот — маленькие, недостаточный интерлиньяж, средняя вертикальная черта буквы «ш» выделена жирным.

Пайка аккуратная, но вот ошибок правописания в статье… Имя им — легион.
— сам корпус почти невесомый (стенки 2мм). Вставки (шпон из деревесины Падук) действительно не в тему, и надо будет срезать и подбирать что то другое. Нижняя закрывает отверстия динамика, верхняя закрывает два места, где при соединении не удалось свести текстуру дерева.
— в том, что ничем не заменяется, и не сильно распространен
— BQ — серия контроллеров питания (например BQ24296RGER). Согласен не так выразился, они от «ТI»
— С неудобством текста, тоже согласен. При dpi=125 и без градаций серого, красоту навести сложно, но сейчас шрифт _standart читается удобно (литеры «ш» «м» подредактировать, конечно надо), курсив, вероятно без сглаживания никогда нормальным не будет.
— И, да, про ошибки вы тоже правы. Все, что прилетает в личку, я правлю. Видно изложение текстов это не мое. В конце уже заставлял себя дописывать, чтобы не бросить. Зато я теперь буду больше ценить труд Тех. писателя, который на работе за мной документы правит :)
Бонус под одноименным сполером уже не актуален. Зарезервирован под пользователя kudisoldier
Здорово! Необходимо добавить подсветку для чтения в темное время и, вероятно, увеличить ресурс АКБ.
Каким-то образом пропустил вашу статью.

Моё восхищение упорству и трудолюбию! Просто большое уважение. Не думаете сделать какой-то открытый проект для публики, так чтобы могли энтузиасты подключиться? Может сделать что-то подобное, выложить на hackaday?
я дал ссылки на исходники, если у кого-то есть желание его куда-то дальше распространить, то я не против.
Брать чужие лавры славы — это как-то не правильно. Наоборот, хотел помочь, хоть как-то. Проект реально клёвый.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.