СДЕЛАНО - Kobo Aura One: поддержка Comfort Light

Cool Reader
Metazoa
Posts: 129
Joined: Wed Apr 29, 2015 1:01 pm
My ELO: I don't know
Location: Одесса

СДЕЛАНО - Kobo Aura One: поддержка Comfort Light

Postby Metazoa » Tue Dec 27, 2016 9:36 am

Альтернативная таблица уровней яркости и температуры

В связи с появлением у меня сего девайса есть мысль допилить сборку под максимальное использование его фич.
Основная фича девайса - посдветка ComfortLight с регулировкой теплоты (цветовой температуры).
Аппаратно реализовано в виде системы RGBW, а именно: светодиоды подсветки стоят парами, один из них белый (причем достаточно холодный), второй красно-зелено-синий с управлением яркостью и оттенком. По умолчанию родная прошивка использует второй диод для генерации оранжевого излучения, которое подмешивается в холодное белое и дает общий свет нужной теплоты.
Программно это выглядит как два раздельных канала управления яркостью, причем нужные значения для разной интенсивности яркости и цветовой температуры захардкодированы в виде таблиц байтов. Родная таблица в nickel очень большая (120 кбайт данных), но я нашел упрощенный вариант, однако с ним еще надо поэкспериментировать.
Основной вопрос к sergeyvl: получится ли добавить в настройки яркости второй ползунок (для управления цветовой температурой) ? Соотв. нужно будет сохранять это значение где-то в конфиге, восстанавливать после засыпания и т.п., т.е. все то же самое, как и для основной управлялки яркостью.
Если функции управления яркостью запилены как-то отдельным модулем, могу попробовать собрать его сам, если нет - дам исходники управлятора для тестовой сборки.
И, как обычно, спасибо ! ;)
Kobo Aura One

Metazoa
Posts: 129
Joined: Wed Apr 29, 2015 1:01 pm
My ELO: I don't know
Location: Одесса

Re: Kobo Aura One: поддержка

Postby Metazoa » Tue Dec 27, 2016 7:20 pm

Для корректной работы usbnet в usbnet.sh нужно прописать:

Code: Select all

PLATFORM=mx6sl-ntx


Платформа и соотв. директория с драйверами изменились.
Kobo Aura One

sergeyvl
Posts: 1542
Joined: Sun Nov 13, 2011 5:43 pm
My ELO: 1700-1800
Location: Харьков
Contact:

Re: Kobo Aura One: поддержка

Postby sergeyvl » Tue Dec 27, 2016 9:03 pm

В принципе регулировку поддержки "теплоты" можно легко сделать. Мне нужно четкое описание что и куда писать.

Metazoa
Posts: 129
Joined: Wed Apr 29, 2015 1:01 pm
My ELO: I don't know
Location: Одесса

Re: Kobo Aura One: поддержка

Postby Metazoa » Tue Dec 27, 2016 11:48 pm

sergeyvl wrote:В принципе регулировку поддержки "теплоты" можно легко сделать. Мне нужно четкое описание что и куда писать.

Куда - понятно:

Code: Select all

/sys/class/backlight/lm3630a_led1a/brightness
/sys/class/backlight/lm3630a_ledb/brightness
/sys/class/backlight/lm3630a_leda/brightness
/sys/class/backlight/lm3630a_led1a/bl_power
/sys/class/backlight/lm3630a_ledb/bl_power
/sys/class/backlight/lm3630a_leda/bl_power
/sys/class/backlight/lm3630a_led1b/brightness
/sys/class/backlight/lm3630a_led1b/bl_power


А вот что...
В общем, там два ползунка - яркость и цветовая температура. В зависимости от этих двух параметров рассчитывается color index, а потом из огроменного массива берутся 4 константы R,G,B,W и записываются в соотв. /brightness .
Как-то очень не уверен я что это все надо повторять, хотя как иначе - тоже непонятно.
Kobo Aura One

kaznelson
Posts: 324
Joined: Thu Jan 22, 2015 6:37 am
My ELO: I don't know

Re: Kobo Aura One: поддержка

Postby kaznelson » Wed Dec 28, 2016 6:05 am

Metazoa wrote:Для корректной работы usbnet в usbnet.sh нужно прописать

Для прошивок 3.12 и новее в usbnet.sh можно платформу вообще не прописывать:
http://forum.vlasovsoft.net/viewtopic.php?f=6&t=624&start=60#p3784
Kobo Aura H2O, Kobo Glo HD, Kindle Paperwhite 2

sergeyvl
Posts: 1542
Joined: Sun Nov 13, 2011 5:43 pm
My ELO: 1700-1800
Location: Харьков
Contact:

Re: Kobo Aura One: поддержка

Postby sergeyvl » Wed Dec 28, 2016 7:15 am

Metazoa wrote:а потом из огроменного массива берутся 4 константы R,G,B,W и записываются в соотв. /brightness .
Как-то очень не уверен я что это все надо повторять, хотя как иначе - тоже непонятно.


120К - не очень огромный массив. можно выделить в бинарный файл.

Metazoa
Posts: 129
Joined: Wed Apr 29, 2015 1:01 pm
My ELO: I don't know
Location: Одесса

Re: Kobo Aura One: поддержка

Postby Metazoa » Wed Dec 28, 2016 9:14 am

kaznelson wrote:Для прошивок 3.12 и новее в usbnet.sh можно платформу вообще не прописывать

Да, но у меня не работало пока не прописал руками.
Выдавало usbnet error.
Kobo Aura One

sergeyvl
Posts: 1542
Joined: Sun Nov 13, 2011 5:43 pm
My ELO: 1700-1800
Location: Харьков
Contact:

Re: Kobo Aura One: поддержка

Postby sergeyvl » Wed Dec 28, 2016 9:48 am

Metazoa wrote:
kaznelson wrote:Для прошивок 3.12 и новее в usbnet.sh можно платформу вообще не прописывать

Да, но у меня не работало пока не прописал руками.
Выдавало usbnet error.


По идее в launcher.sh прописано:

Code: Select all

PLATFORM=freescale
if [ `dd if=/dev/mmcblk0 bs=512 skip=1024 count=1 | grep -c "HW CONFIG"` == 1 ]; then
        CPU=`ntx_hwconfig -s -p /dev/mmcblk0 CPU`
        PLATFORM=$CPU-ntx
fi
...
export PLATFORM


(кусок взят из rcS)

и в usbnet.sh это должно подхватываться. В новой версии установку PLATFORM в usbnet.sh убираю совсем. Андрей, если не работает, посмотри пожалуйста почему.

Metazoa
Posts: 129
Joined: Wed Apr 29, 2015 1:01 pm
My ELO: I don't know
Location: Одесса

Re: Kobo Aura One: поддержка

Postby Metazoa » Wed Dec 28, 2016 10:08 am

sergeyvl wrote:и в usbnet.sh это должно подхватываться. В новой версии установку PLATFORM в usbnet.sh убираю совсем. Андрей, если не работает, посмотри пожалуйста почему.

Да, гляну, но для начала подсветка.
Kobo Aura One

Metazoa
Posts: 129
Joined: Wed Apr 29, 2015 1:01 pm
My ELO: I don't know
Location: Одесса

Re: Kobo Aura One: поддержка

Postby Metazoa » Wed Dec 28, 2016 10:25 am

Итак, бинарник.
Выдран прямо куском из никеля.
Структура такова:

- все данные имеют длину двойное слово (dword, 4 байта)
- записи располагаются в следующем порядке: <температура, K><яркость, %>,<канал R>,<канал G>,<канал B>,<канал W>
итого по 6 двойных слов на запись, сразу после этого идет следующая такая же запись без разделителей
- данные в файле отсортированы по первым двум полям в порядке возрастания
- диапазоны значений: температура 1500-6400 К включительно с шагом 100, яркость 0-100 % включительно с шагом 1

Алгоритм работы:

- при каждом изменении температуры или яркости (в никеле это два ползунка) нужно лезть в таблицу, брать новые значения всех четырех каналов RGBW и записывать их в /sys/class/backlight/...
- соответствия каналов:
R: /sys/class/backlight/lm3630a_led1a/brightness
G: /sys/class/backlight/lm3630a_ledb/brightness
B: /sys/class/backlight/lm3630a_leda/brightness
W: /sys/class/backlight/lm3630a_led1b/brightness
- также необходимо устанавливать значения /sys/class/backlight/lm3630a_led.../bl_power по простому алгоритму: если значение brightness в соотв. канале 0, пишем в bl_power тоже 0; если brightness отличается от нуля, то пишем в bl_power для этого канала число 31 (0x1F)
- при засыпании и отключении яркости во все значения brightness и bl_power всех каналов пишутся нули, при просыпании и включении - восстанавливаются значения до засыпания
- на самом деле в никеле нельзя установить цветовую температуру ниже 1900, так что реально используемый диапазон температур 1900-6400 K включительно с шагом 100; соотв. и ненужные значения из таблички при желании можно выбросить

Вроде все. Если есть вопросы - велкам. 8-)
Attachments
lightmap.zip
(29.19 KiB) Downloaded 51 times
Kobo Aura One


Return to “Cool Reader”

Who is online

Users browsing this forum: No registered users