LEDraw Project: платформа для светодиодной графики (Гирлянды и всё такое...)

Palpalych

★★★★★✩✩
24 Дек 2019
765
404
данная тема достаточна обширна, и сложно будет её за раз выложить в готовом виде. Подготовка и исправление материалов занимает очень много времени (которого свободного у меня нет в должном количестве), и поэтому прошу модераторов дать мне отсрочку, хотя бы в неделю, для последовательного пополнения. Желательно закрепить еще 2 первых поста для дополнительной сопутствующей информации. Спасибо.
В прошлом я был создателем одной из прошивок Лампы Гайвера и материалы выкладывал на страницах этого форума. В какой-то момент проект был полностью переработан и адаптирован для новых задач, о которых я хотел бы писать на этих страницах. Месяца 2 назад мне потребовалось сделать прошивку для управления светодиодной лентой. Используя старые наработки и желание сделать общий алгоритм работы и управления, полностью переделал код. На данный момент разработка представляет собой управление ёлочной гирляндой (как ни странно Новый Год на носу) - это была моя самая давняя мечта, и я планирую осуществить ее до конца этого года. А так как программа была "поломана", то восстановление функционала Лампы Гайвера на новом "движке" это уже следующий этап. Итак...

LEDraw Project: платформа для светодиодной графики / расширение возможностей FastLED

LEDraw Project - это платформа для светодиодной графики базирующаяся на популярной библиотеке управления адресными светодиодными лентами FastLED. Основное назначение этой платформы, как ни странно, это экономия ресурсов контроллера при повышении качества выводимой "картинки". На данный момент включает в себя набор объектов с оптимизированной структурой для иерархичного доступа к ресурсам котроллера, а также ряд высокопроизводительных графических функций для рисования эффектов. В дополнении, имеется еще ряд полезных и совместимых модулей расширяющих функционал этой платформы, таких как управление кнопкой, полноцветные индикаторы (адресные светодиоды находящиеся в цепочке, но не участвующие в прорисовке основного эффекта, служащие, например, для индикации режима, уровня сигнала и пр.), управление питанием и яркостью...

Примеры реализации проекта LEDraw:
LEDraw stripe - 144LEDs, 1D-graphix, faders, 1D-OSD

LEDraw garland (гирдянда) - 249LEDs, 1D-graphix, faders, 1 inLED-indicator
LEDraw Disco-Lamp - 32LEDs, 1D-graphix, faders, 1 LED-indicator, 1 Aux driver (motor)

Схема подключения:
Base.png
Замечено, что такая схема выдерживает подключение 100-150 стандартных адресных светодиодов без проблем от стандартной USB зарядки на 2А (при условии выставления соответствующего тока в конфигурации)! Резистор 150 Ом желателен, но не обязателен в случае если лента не работает.

Схема подключения дополнительного исполнительного устройства (моторчик, или бэкграунд подсветка):
AuxDrive.png

Рабочие конфигурации:
№9 - полоска из светодиодов ws2012b
№10 - дисколампа на ws2012b
№11 - гирлянда на ws2011

При работе над эффектами было замечено, что многие из них начинали вести себя совершенно другим образом, когда менялось, например, количество светодиодов. Либо появлялась дискретность изображения, либо эффект замедлялся(ускорялся) до нежелательных скоростей, а иногда картинка переворачивалась, и приходилось лезть в код, чтобы разобраться с неведомыми параметрами, чтобы привести все в норму. А иногда эффект сильно тормозил весь процесс, пересчитывая "тяжелые" или излишние кадры. В данной платформе появился некий интерфейс между процедурой отрисовки эффекта и программой управления (менеджером), что позволило сократить количество ресурсов занимаемых у контролера без потери качества самой отрисовки. Более того, повысилась плавность и четкость отрисовки благодаря использованию легких и понятных графических функций (словно как в Бэйсике - Draw, Line, Plot...)

Объекты LEDraw - функционально законченные и оптимизированные модули, позволяющие удобно их использовать в своих разработках. Написаны в виде структур, а не классов, что позволяет более рационально использовать ресурсы контроллеров. В частности, все методы в структурах единожды описываются в памяти при компиляции (являются общими), а не дублируются как в классах без усложнения кода.
Статический объект effect описывает все для необходимого для отображения эффекта.
  • Переменные и свойства:
    • *current - указатель на свойства текущего эффекта
    • uint8_t speed - полное значение регулятора скорости
    • uint8_t scale - полное значение регулятора скорости
    • timer - объект внутреннего счетчика времени. Используется для отсчета скорости смены кадров, или таймер смены эффектов
    • *leds - указатель на массив памяти (светодиоды), с которым работает данный эффект
    • int8_t/int16_t i - универсальная переменная, индекс используемый текущим эффектом для внутренних целей
    • int8_t/int16_t indexes[ ] - универсальная масштабируемая переменная используемая текущим эффектом для внутренних целей
    • CRGB colors[ ] - универсальная масштабируемая переменная используемая текущим эффектом для внутренних целей
    • A, B, C, D - универсальные переменные используемые текущим эффектом для внутренних целей. Каждая занимает всего лишь 4 байта, но может использоваться как 4 однобайтные переменные, 2 - двухбайтные, как 1 четырехбайтная, или быть представлена как RGB цвет
    • rgb16_palette/g_palette - универсальная переменная для описания текущей палитры
  • Методы:
    • bool hasChangedEffect() - возвращает сбрасываемый признак смененного эффекта
    • bool hasChangedParams() - возвращает сбрасываемый признак изменённых параметров Speed, Scale, Bright
    • bool hasChangedSpeed() - возвращает сбрасываемый признак изменённого параметра Speed (Скорость)
    • bool hasChangedScale() - возвращает сбрасываемый признак изменённого параметра Scale (Масштаб)
    • bool set(effect)- устанавливает эффект текущим. Возвращает признак успешного выполнения операции
      • effect - индекс (uint8_t) эффекта из списка effects_array[ ]
    • void setPalette(&palette)- установка текущей (рабочей) палитры эффекта
      • &palette - адрес обычной RGB16(TProgmemRGBPalette16Ptr), или градиентной палитры (TProgmemRGBGradientPalettePtr)
    • bool tick() - прорисовка "кадра" эффекта. Возвращает true, если кадр изменился
    • CRGB ColorFromPalette(index, brightness, blendType) - локальная реализация функции для работы с текущей палитрой
    • void fill_palette(N, startIndex, incIndex, brightness, blendType) - локальная реализация функции для работы с текущей палитрой

  • Переменные и свойства описания эффекта:
    • uint8_t id - индекс текущего эффекта
    • bool *action(&effect)- указатель на процедуру прорисовки кадра. Возвращает признак непустого кадра
      • &effect - ссылка на параметры передаваемые в процедуру эффекта

LEDraw позволяет с легкостью конфигурировать несколько родственных проектов со своими настройками. Осные настройки находятся в файле config.h. Дополнительные кастомные настройки в своем конфигурационном файле находящимся в корне проекта. Смысл заключается в том, что кастомный конфигурационный файл переписывает необходимые установки define под конкретную реализацию проекта.

Первоначально эффекты работали с 8 палитрами, но в процессе адаптации появилась возможность работать с градиентными(!) палитрами, коих в коллекции насчитывается уже 34 шт.

  • Кнопка - Да
  • Демо-режим - Да (в минимальной конфигурации)
  • Индикаторы - Частично
  • Регуляторы (интеллектуальное управление кнопкой + визуализация) - Частично
  • AuxDrive (моторчик, одноцветная LED лента...) - Да
  • Дизеринг - Да
  • Фаворитные списки - Нет
  • Пульт - не отлажен
  • Фэйдеры эффектов - Да
  • Анимационные фэйдеры - Да
  • WiFi - не отлажен
...
Button: --- v.2.0.01γ (01.12.2020)
Алгоритм управления кнопкой

Действие по умолчению (если не выполнено другое):
- / удержание - регулировка глобальной яркости
*- / 1 + удержание - ... скорости эффекта
**- / 2 + удержание - ... масштаба эффекта
***- / 3 + удержание - регулировка яркости эффекта (для проектов с моторчиком - скоростьего вращения)

Из профиля OFF/SLEEP:
* / 1 кратное нажатие - показ часов (если установлена соответствующая настройка, и при работе в режиме клиента). Повторное нажатие во время показа - переход в режим ON
** / 2 кратное нажатие - переход в режим LAMP
*** / 3 кратное нажатие - смена бэкграунда режима OFF
**** / 4 кратное нажатие - переход в режим DEMO
***** / 5 кратное нажатие - вывод интернет имени лампы и текущего IP (если поддерживается)
****** x2 / 6 кратное нажатие - прошивка по OTA (после 2-кратного входа в этот режим. Переключится на эффект Матрица) (если поддерживается)
******* / 7 кратное нажатие - смена режима ESP - точка доступа/клиент (если поддерживается)
******** / 8 кратное нажатие - сброс настроек эффектов

Из профиля ON:
* / 1 кратное нажатие - показ часов (при работе в режиме клиента). Повторное нажатие во время показа - переход в режим OFF
** / 2 кратное нажатие - смена эффекта вперед
*** / 3 кратное нажатие - смена эффекта назад
**** / 4 кратное нажатие - переход в режим PAINT >> ON >> PAINT... (если поддерживается)
***** / 5 кратное нажатие - вывод FPS - количества кадров в секунду (если поддерживается)
******** / 8 кратное нажатие - сброс настроек текущего эффекта

Из профиля LAMP:
* / 1 кратное нажатие - выключение лампы
** / 2 кратное нажатие - переход в режим ON
*** / 3 кратное нажатие - смена эффекта лампы

Из профиля DEMO:
* / 1 кратное нажатие - переход в режим OFF
** / 2 кратное нажатие - переход в режим ON
*** / 3 кратное нажатие - смена режима демо (Последовательное/Случайное/просмотр градиентов)
***** / 5 кратное нажатие - вывод текущего периода смены эффектов (в секундах)
*- / 1 + удержание - ... периода смены эффектов (10сек - 2 минуты)

Режим удержания работает по такому принципу:
Для регулировки соответствующего параметра нужно удерживать кнопку на определенное время, пока не отобразится соответствующий индикатор.
Когда регулируемое значение дойдет до своего минимального значения, то при дальнейшем удерживании кнопки через 1,5с оно будет изменяться в обратную сторону. Если при отпускании кнопки быстро нажать ее повторно, то произойдет вход в предыдущий режим установки.
Если в течении 0,75с произойдет повторное нажатие, то "разворота" приращения регулировки не произойдет, тем самым можно будет легко сделать точную подстройку регулируемого параметра.

Код проекта: (на данный момент доступен как готовое решение для платформы Wemos D1 mini)


= перелопачен принцип управления графикой. Введен новый модель graphix, который объединяет параметры вывода на ленту и быстрые функции прорисовки графики.
Теперь можно определить отдельные пространства на ленте, и с каждым независимо работать не прибегая к чрезмерному описанию параметров.
Доступны такие функции одномерной графики:
- inRange(*) - проверка адреса пикселя на нахождения в своих границах
- wrap(*) - функции "оборачивания" координаты относительно границ
- crop(*) - функции "обрезания" координаты относительно границ
- mirror(*) - функции "отражения" координаты относительно границ
- getPixelValue(*) - функция получения цвета пикселя по его номеру
- getPixelBright(*) - функция получения яркости пикселя по его номеру
- getColor(*) - получение цвета пикселя по его номеру
- blurAll(*) - размытие всего диапазона пикселей
- blend_fast(*) - получение промежуточного цвета относительно двух заданных
- drawPixel() / drawPixel_safe() - прорисовка пикселя (+безопасная)
- dimRange() / dimRange_safe() - затемнение отрезка (+безопасная)
- fillRange() / fillRange_safe() - прорисовка отрезка (+безопасная)
- fillSegment() / fillSegment_safe() - прорисовка отрезка простым градиентом
- noiseAll(*) - заполнение дискретным шумом всего диапазона
- fillAll(*) - заполнить цветом весь диапазон
- dimAll(*) - затемнить весь диапазон
- clearAll(*) - очистить всё
прорисовка графических примитивов (1d):
- drawSparkler(*) - прорисовка "бенгальского огня"
- drawComet(*) - прорисовка кометы

v2.2.15β (30.12.2022) Скачать/Download


Установка:
  • PlatformIO, все как обычно - распаковываем архив в новую папку, открываем, компилируем...
  • Arduino IDE: требуется перенести библиотеки из /lib в C:\Users\*******\Documents\Arduino\libraries. По крайней мере папочку /LEDraw если там уже есть последние GButton и FastLED. Для установки - кликаем файл src\src.ino и только на этой вкладке запускаем сборку.
 
Изменено:

Sipkomax

✩✩✩✩✩✩✩
6 Дек 2019
8
3
А что VS Code не устраивает? Можно одновременно с IDE установить. Одно другому не помешает.
Да попробовал VS Code, но для меня слишком сложно оказалось. Я на том уровне когда макисимум пины в скетче поменять могу
 
  • Лойс +1
Реакции: Divin

Palpalych

★★★★★✩✩
24 Дек 2019
765
404
@poty,

C++:
exit status 1

Compilation error: variable 'log_init_greetings' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
   
*******

char log_init_greetings[] PROGMEM = "\n\nInit: ====== LEDraw Project %s ======\n";
Вот здесь, при объявлении строковой переменной в памяти. PIO - хавает, IDE - отказывается.

UPD: Плата Nano оказалась выбрана. Она такой конструкт не поддерживает )))
 
Изменено:

Palpalych

★★★★★✩✩
24 Дек 2019
765
404
Да попробовал VS Code, но для меня слишком сложно оказалось. Я на том уровне когда макисимум пины в скетче поменять могу
Там ничего сложного - все то же самое. Может своеобразно заморочено, но гораздо удобнее в плане отладки.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,159
1,267
Москва
@Palpalych,Английским по белому написано - строка должна быть объявлена как константа.
C++:
const char log_init_greetings[] PROGMEM = "\n\nInit: ====== LEDraw Project %s ======\n";
 

Palpalych

★★★★★✩✩
24 Дек 2019
765
404
@Старик Похабыч, знаю, начинаю исправлять, тогда перестает компилироваться в PIO... поэтому пока забил на IDE. А если вылавливать и эти ошибки, то не успею завершить те задумки до НГ, которые планировал.
С другой стороны. Эти константы нужны для отладки. По идее можно просто отключить их USE_DEBUG = false
 

Palpalych

★★★★★✩✩
24 Дек 2019
765
404
Маленькая обновка. Для владельцев IDE наверное сложно будет подцепить индивидуальные конфигурационный файлы из папки /custom (хотя, все компилируется). Поэтому пользуйтесь основным файлом config.h, только установив
#define CUSTOMIZATION 0

Напомню, что работают на данный момент кнопка, индикаторы, фейдеры и моторчик (схема включения на главной)


v2.2.11β (15.12.2022) - by PalPalych
! восстановлена компиляция через IDE и PIO
 

Вложения

  • Лойс +1
Реакции: Divin

Palpalych

★★★★★✩✩
24 Дек 2019
765
404
Экспромтом:
v2.2.12β (17.12.2022) - by PalPalych
+ добавлен сброс настроек при нажатой кнопке при включении в сеть
+ в модуль ledraw_graphix_1d добавлены: saturateAll(), blendAll()
+ добавлены новые эффекты переходов: Strobe, Thunder, WhiteFader, ColorFader (общее количество теперь 9)
 

Вложения

Divin

★★★✩✩✩✩
30 Янв 2021
409
182
@Palpalych,Под IDE все конфигурируется, компилируется и прекрасно работает - спасибо!
 
Изменено:
  • Лойс +1
Реакции: Palpalych

Palpalych

★★★★★✩✩
24 Дек 2019
765
404
v2.2.13β (18.12.2022) - by PalPalych
! поправлен загрузчик
+ добавлен модуль репликации эффекта с возможностью отзеркаливания для одной длинной ленты
+ эффект "Петарды" (переименовал в Холи)
+ мелкие исправления эффектов и по программе

Репликация служит для копирования эффекта на одной ленте. К примеру решили нарядить елку, чтобы в 2-3-4 стороны эффект повторялся (чтобы он один не размывался на большой ленте). Тоже самое возможно чтобы он был зеркален в смежных секторах. Есть возможность задать разрывы между репликами. У меня, к примеру так решилась реализация размещение гирлянды на окно, когда по бокам 2 узкие секции, а посередине широкая. для стандартной гирлянды в 50 светодиодов организовал 4 секции по 48 (12х4) с пропуском в 2 светодиода на перекрытие рамы.
 

Вложения

Изменено:
  • Лойс +1
Реакции: Sipkomax

Jefferson Trent

✩✩✩✩✩✩✩
23 Май 2021
4
0
Здравствуйте, Palpalych! А у вас планируется управление через приложение? Гайверовские решения не подходят?
И еще тут заметил, что в прошивке ставил количество диодов 200, а гирлянда не вся светит. Не считал точно, но штук 50, где-то, не светят.
И управление с кнопки сильно перегружено. Через минуту я уже не знал чего нажать и сколько раз. Может быть стоит добавить пару кнопок?
1. вкл-выкл
2. смена профиля
3. смена эффекта
Я просто тупой и могу только предложить. Сам такое не смогу сделать.
 
Изменено:

Palpalych

★★★★★✩✩
24 Дек 2019
765
404
@Jefferson Trent,
Привет. Платформа разрабатывается пока как система отображения графики. На данный момент тестируется как гирлянда. Дальше планирую прописать функционал сопряжения лент в различных комбинациях. Может дойду до реализации матрицы, и восстановлю лампу Гайвера на ней.
На данный момент занимаюсь оттачиванием минималистичности, но, это не мешает расширить функционал всеми придуманными наворотами как то пульты, доп кнопки, или датчики звука...
Касательно настроек. У меня там реализована система профилей. На данный момент одновременно делаю дисколампу, гирлянду 250, гирлянду на окно 200, и 3 различных проектов "Бутылка" (кхе-кхе, не то чтобы посадить, а гирлянда в бутылке... если интересно, то скину фото-видео завтра)... так вот все они требуют различных настроек кнопок и лент начиная от количества и заканчивая типом светодиодов. Чтобы не заморачиваться переписыванием конфигов в одном файле - сделал несколько, где описаны особенности каждого проекта. Чтобы выбрать пользовательский конфиг, нужно в основном файле config.h установить #define CUSTOMIZATION 14 (или другой конфигурационный номер, список настроечных файлов находится ниже, сами файлы - в папке /custom) Из IDE, возможно эти файлы не видны, и поэтому их можно положить в корень (соответственно в профилях прописать путь до них) или отключить кастомизацию CUSTOMIZATION 0, и менять параметры в основном файле.

Касательно кнопки, да есть недоработки, постараюсь на днях пофиксить до минимального грамотного функционала. Вообще, желание прописать модуль легкой настройки конфигурации кнопки под различные задачи или проекты. Но, как всегда, времени катастрофически не хватает...

PS поделюсь еще планами. Есть желание приладить эту прогу в самодельную блютуз-колонку. А там сделать не только грамотную цветомузыку, но еще фонарик для пикника (с управлением одной кнопкой, естественно). Так, потенциала чтобы все организовать у этого проекта хватает. )))
 

Divin

★★★✩✩✩✩
30 Янв 2021
409
182
@Palpalych, К вашему проекту "Бутылка" органично подойдет мой проект "Стакан" https://community.alexgyver.ru/threads/aromalampa.5189/ ;) У меня есть небольшой сферический аквариум - дык уже много лет я заполнял его на НГ шарами и всяческой мишурой и вставлял гирлянду "капельки". Так что будет любопытно посмотреть
 

Divin

★★★✩✩✩✩
30 Янв 2021
409
182
@Palpalych, В последней версии выскакиваект такая бяка -
C++:
exit status 1
no matching function for call to 'utimer_t::check(uint32_t&, uint8_t&)'
и собственно сама ошибка:
C++:
    if (e.timer.check(effects.millisCounter, e.A.u8b))
 

Palpalych

★★★★★✩✩
24 Дек 2019
765
404
@Divin, попробуй перекомпилировать весь проект. там изменения в библиотеке(?) ledraw_effects
 

Palpalych

★★★★★✩✩
24 Дек 2019
765
404
v2.2.13β (18.12.2022) - by PalPalych
! поправлен загрузчик
+ добавлен модуль репликации эффекта с возможностью отзеркаливания для одной длинной ленты

+ эффект "Холи" в честь индийского праздника красок
+ мелкие исправления эффектов и по программе
v2.2.14β (25.12.2022) - by PalPalych
+ эффект "Петарды"
+ перелопачен механизм формирования эффектов, адаптирован к применению разных лент (чуть медленнее прорисовка зффекта (допустим, с 165 FPS упало до 164,5), но зато гибкая конфигурация светодиодного хозяйства)
+ в графику добавлена серия функций drawPixel_safe

Касательно управления:
одно нажатие - вкл/выкл. (при включении переходит в режим Демо)

двойное нажатие при включении - переключение в режим статичных эффектов.
тройное нажатие при включении - режим Лампа (тестовый режим)
четверное при включении - тот же режим демо
восьмикратное - сброс всех настроек

двойное нажатие из Демо - переключение в режим статичных эффектов.
тройное нажатие из Демо - смена набора эффектов (там тестом стоит циклическая смена палитр)

двойное нажатие из эффектов - следующий эффект
тройное нажатие из эффектов - предыдущий эффект
четверное нажатие из эффектов - режим Демо
восьмикратное - сброс настроек текущего эффекта

удержание - регулировка яркости во всех режимах
1 клик + удержание - скорость изменения эффекта (или другие параметры, например, количество примитивов, реверс отображения...) Для режима демо - скорость смены эффекта (15 cек ... 2 мин).
2 клика + удержание - "масштаб" эффекта. Как правило, это выбор статичной палитры и/или коэфф. растяжения. Для Демо - смена циклическая/рандомная смена эффекта, ограниченный/полный выбор палитр.

Напоминаю, что управление кнопкой можно удобно отслеживать с помощью индикатора (библиотека ledraw_indicators)
 

Вложения

Изменено:
  • Лойс +1
Реакции: Jefferson Trent и Divin

Palpalych

★★★★★✩✩
24 Дек 2019
765
404
@Divin, да сложно. Времени не хватает - потом монтаж, публикация... (((
да суть простая - любая декоративная бутылка (к примеру https://fix-price.com/catalog/dlya-doma/p-5036029-butylka-itchen-550-ml-v-assortimente), внутри гирлянда на 50 светодиодов. Все эффекты с гирлянды, конечно, выглядят по другому, но по своему красочно.

Вот очередное обновление:
v2.2.15β (30.12.2022) - by PalPalych
+ эффект "Звездопад"
= расширено применение универсальных переменных в эффектах
= порядок в фейдерах
= убрал косяк в сбросе всех настроек
Касательно эффектов - как основа были взяты эффекты прошивки от notamesh (Суть та же гирлянда Гайвера). Как говорит автор, там 120 эффектов, но по сути - из всего с десяток, которые в свою очередь базируются на демонстрационных программах FastLED. Остальное - это вариации. Самые красивые были реализованы в этой прошивке, причем адаптированы с применением графики LEDraw. Вариативность обеспечивается сменой палитр (на данный момент их около пятидесяти), и изменением скорости, времени затухания, направления... Другая половина эффектов прописана с новым смыслом. Вот список этих эффектов:
STARFALL.PAL
HOLI.PAL
ANACONDA.PAL
CHINA.PAL
JUGGLE.PAL
WAVE.PAL
SINELON.PAL
BLENDWAVE.PAL
SPARKLES.PAL
NOISEFIRE.PAL
EASE.PAL
PETARDS.PAL
BEATWAVE.PAL
NOISEMOVER.PAL
PLASMA 1D.PAL
 

Вложения

  • Лойс +1
Реакции: Divin

lukinand2008

✩✩✩✩✩✩✩
12 Дек 2022
1
0
При компиляции скетча вылазит куча ошибок. Откуда ноги растут не пойму. Может подскажете в каком направлении копать?
 

Вложения

Palpalych

★★★★★✩✩
24 Дек 2019
765
404
@lukinand2008,
Последняя строчка -
Failed uploading: no upload port provided

Не выбран порт загрузки.

в platformio.ini пропиши свои параметры (к примеру):
upload_port = COM[4]
upload_speed = 115200

Узнать какой порт использует плата можно в разделе Devices из Меню Platformio (PIO Home)
 

DimTs

✩✩✩✩✩✩✩
21 Ноя 2020
17
8
Может кто ответит. Версия 2,2,15. Под IDE. Первый светодиод в ленте долбит как индикатор. В конфигах индикаторы отключаю. Не помогает. И включается только в режиме Демо. Так же не смотря на настройки конфигов.
 

Palpalych

★★★★★✩✩
24 Дек 2019
765
404
@DimTs,

Там в конфиге есть поддержка нескольких индикаторов - в рабочей части, а так же несколько штук можно зарегистрировать вне этого диапазона. Смотри раздел INDICATORS.