Skip to content
Menu

Регистры Modbus — МР-02м LED

This page is not translated yet. The text below is the Russian source. Facts are unchanged.

Модуль расширения МР-02м LED

Два порта RS-485 видят одну карту и один адрес. Протокол — Modbus RTU. После заводского сброса оба порта ведомые, скорость 115200 8N1, адрес 13. Запись адреса — Holding 128, диапазон в карте 1…246. Код типа — Input 0, значение 120. Holding 122: 0 — Modbus, 1 — Fast Modbus. Запись 2 карта отвергает исключением 3.

Смена типа ленты (Holding 401) и режима линии (Holding 413) идёт после записи Holding 410 = 0x10C8. Дальше пишутся настройки 400…409, пул пикселей с адреса 1100 либо источник кадра Holding 402, затем команда обновления кадра Holding 430 = 1. Статус команды — Holding 431: 3 — команда выполнена.

Ниже все 191 строки файла src/data/generated/registers/mr-02m-led.json. Отдельная таблица на этой странице их не дублирует. Колонка, для которой в файле нет поля, показывает «—».

Карта регистров МР-02м LED
Адрес (dec)Адрес (hex)ТипФункцииДоступФорматЕд. и масштабЗначения и диапазонПо умолчаниюХранение⚡ Событие Fast ModbusС версии ПОКаналНазваниеОписание
00x0000Input04RнетТип модуля = 120 (RGBW_WS2812)Тип модуля = 120 (RGBW_WS2812).
180x0012Input04RдаDI IN1Адреса 18–21. DI IN1..IN4 (0/1), зеркало discrete 18–21.
370x0025Input04RдаOCP-флаг канала R/G/B/WАдреса 37–40. OCP-флаг канала R/G/B/W: 0=норма, 1=превышение ≈5 А (LM2903, шунт 10 мОм, Vref≈49.5 мВ; R/G ← PA1, B/W ← PA4, active-low). Аналоговые мА — FUTURE (rgbw_isense).
1050x0069Input04RдаUptime u32 сек (млАдреса 105–106. Uptime u32 сек (мл. / ст.).
1140x0072Input04RнетНаработка, суткиНаработка, сутки.
1230x007BInput04RдаVDDA, 0VDDA, 0.01 В (328 = 3.28 В).
1240x007CInput04RдаТемпература МК, 0Температура МК, 0.1 °C.
1310x0083Input04RдаТемпература платы OTP/NTC (у силовых), 0Температура платы OTP/NTC (у силовых), 0.1 °C. PA3 / ADC_IN3; 0 если неизвестен.
1320x0084Input04RнетНапряжение шины VLED 12–48 В, 0Напряжение шины VLED 12–48 В, 0.01 В (PA0 / ADC_IN0 + делитель; напр. 2400 = 24.00 В).
2000x00C8Input04RнетМодель ASCII «RGBW_WS2812»Адреса 200–219. Модель ASCII «RGBW_WS2812».
2200x00DCInput04RнетСчётчик короткого нажатия IN1Адреса 220–223. Счётчик короткого нажатия IN1..IN4.
2240x00E0Input04RнетСчётчик длинного нажатия IN1Адреса 224–227. Счётчик длинного нажатия IN1..IN4.
2280x00E4Input04RнетСчётчик двойного нажатия IN1Адреса 228–231. Счётчик двойного нажатия IN1..IN4.
2320x00E8Input04RнетСчётчик короткое+длинное IN1Адреса 232–235. Счётчик короткое+длинное IN1..IN4.
2360x00ECInput04RнетСчётчик шагов энкодера 1 / 2Адреса 236–237. Счётчик шагов энкодера 1 / 2. (ранее 364–365 / 464–515 — сняты).
2700x010EInput04RнетFast Modbus serial address u32Адреса 270–271. Fast Modbus serial address u32. Умолчание прошивки 235606384 = 0x0E0B1170 (с 1.0.2.2; ранее 0x0E0AC350). Окно валидности серийника расширено до 0x0E0A..0x0E0B (приложение + BL, 1.0.2.2).
2900x0122Input04RнетСигнатура 12 байтАдреса 290–301. Сигнатура 12 байт: «LED» (с 1.0.2.2; ранее «RGBW_WS2812»). Модель 200–219 — по-прежнему «RGBW_WS2812».
3200x0140Input04RнетВерсия прошивки + packed u32Адреса 320–325. Версия прошивки + packed u32.
3300x014AInput04RнетВерсия загрузчика ASCIIАдреса 330–337. Версия загрузчика ASCII.
3400x0154Holding03/06/10RWдаПороги событий Fast Modbus (семейныеАдреса 340–343. Пороги событий Fast Modbus (семейные; *holding).
654680xFFBCInput04RнетСемейная диагностика (смАдреса 65468–65519. Семейная диагностика (см. «Состояние МК»).
00x0000Holding03/06/10RнетТип модуля = 120 (зеркало input 0)Тип модуля = 120 (зеркало input 0).
10x0001Holding03/06/10RWнетAO-mirror R/G/B/WАдреса 1–4. AO-mirror R/G/B/W: запись 0 = выкл. канала; >0 = enable + яркость permille (clamp 1000). Чтение: 0 если выкл., иначе target permille.
170x0011Holding03/06/10RнетУпакованные coils DO 1Упакованные coils DO 1..4 (биты 0..3). Запись — illegal.
180x0012Holding03/06/10RнетDI IN1Адреса 18–21. DI IN1..IN4 (0/1), зеркало discrete/input.
330x0021Holding03/06/10RWнетЯркость R/G/B/W, permille 0Адреса 33–36. Яркость R/G/B/W, permille 0..1000 (EEPROM via capture). >1000 → clamp. Protect может снижать фактический PWM (overlay), не меняя регистр. Роли каналов зависят от holding 49.
370x0025Holding03/06/10RнетOCP-флаг R/G/B/W 0/1 (зеркало input 37–40)Адреса 37–40. OCP-флаг R/G/B/W 0/1 (зеркало input 37–40).
490x0031Holding03/06/10RWнетРежим силовых выходов (последовательные 0…11)Режим силовых выходов (последовательные 0…11): 0=RGB+W, 1=W+W+W+W, 2=CCT+CCT, 3=CCT+W+W, 4=2×W+2×W, 5=4×W, 6=2×W+W+W, 7=2×W+CCT, 8=CCT+2×W, 9=W+W+CCT, 10=W+W+2×W, 11=2×CCT. Шёлк: R,G,B,W. EEPROM magic A2B2 (migrate A2B0/A2B1). См. svc_rgbw_pwm.h / svc_rgbw_dimmer.h.
500x0032Holding03/06/10RWнетFade, мс (также sync fade_up/dn)Fade, мс (также sync fade_up/dn).
510x0033Holding03/06/10RWнетЧастота ШИМ, Гц (100…24000, def 3000)Частота ШИМ, Гц (100…24000, def 3000).
520x0034Holding03/06/10RWнетНормализация мощности CCT (0/1)Нормализация мощности CCT (0/1).
530x0035Holding03/06/10RWнетDI в safeDI в safe: 0=разрешить, 1=блок в safe, 2=только в safe.
540x0036Holding03/06/10RWнетЭнкодер ниже minЭнкодер ниже min: 0=выкл канал, 1=держать min.
550x0037Holding03/06/10RWнетPower-on ch RАдреса 55–58. Power-on ch R..W: 0=off, 1=last, 2=on, 3=on+level.
590x003BHolding03/06/10RWнетPower-on level, permilleАдреса 59–62. Power-on level, permille.
630x003FHolding03/06/10RWнетMin яркость канала, permille (def 10)Адреса 63–66. Min яркость канала, permille (def 10).
670x0043Holding03/06/10RWнетMax яркость канала, permille (def 1000)Адреса 67–70. Max яркость канала, permille (def 1000).
710x0047Holding03/06/10RWнетHSV Hue 0…359 (режим RGB+W)HSV Hue 0…359 (режим RGB+W).
720x0048Holding03/06/10RWнетHSV Sat 0…1000HSV Sat 0…1000.
730x0049Holding03/06/10RWнетHSV Val 0…1000HSV Val 0…1000.
740x004AHolding03/06/10RWнетCCT1 temp / brightness 0…1000Адреса 74–75. CCT1 temp / brightness 0…1000.
760x004CHolding03/06/10RWнетCCT2 temp / brightness (2×CCT → = CCT1)Адреса 76–77. CCT2 temp / brightness (2×CCT → = CCT1).
780x004EHolding03/06/10RWнетFade up / down, мсАдреса 78–79. Fade up / down, мс.
800x0050Holding03/06/10RWнетAuto-ChangeАдреса 80–101. Auto-Change: пары action/period для Hue,Sat,Val,CCT1t,CCT1b,CCT2t,CCT2b,R,G,B,W. action: 0=stop,1=dec,2=inc,3=ping-pong; period: мс/шаг. В safe все серии стоп. Persist extras: sensor_calibration[0..7], magic 0xD102.
1100x006EHolding03/06/10RWнетBaud (кодBaud (код; 1152 = 115200). Общий для обоих портов.
1110x006FHolding03/06/10RWнетЧётностьЧётность: 0=нет, 1=нечёт, 2=чёт.
1120x0070Holding03/06/10RWнетСтоп-битыСтоп-биты: 1 или 2.
1200x0078Holding03/06/10WнетПерезагрузка МК (≠0)Перезагрузка МК (≠0).
1220x007AHolding03/06/10RWнетРежим шиныРежим шины: 0=Modbus, 1=Fast Modbus. Значение 2 (BACnet MS/TP) существовало в 1.0.1.52..1.0.2.4 и УДАЛЕНО вместе со стеком BACnet в 1.0.3.0 — запись 2 даёт exception 3. docs/contracts/bus-protocol.md
1250x007DHolding03/06/10RWнетМаска системных групп Fast ModbusМаска системных групп Fast Modbus.
1260x007EHolding03/06/10WнетКоманда «все системные группы» on/offКоманда «все системные группы» on/off.
1280x0080Holding03/06/10RWнетModbus slave address, 1Modbus slave address, 1..246 (оба порта). Заводское значение 13 (с 1.0.2.2; ранее 15).
1290x0081Holding03/06/10Wнет≠0 → reboot в загрузчик≠0 → reboot в загрузчик.
1310x0083Holding03/06/10RнетТемпература платы NTC (зеркало input 131)Температура платы NTC (зеркало input 131).
1320x0084Holding03/06/10RнетVLED шина 0VLED шина 0.01 В (зеркало input 132).
1330x0085Holding03/06/10RWнетВремя «бегущей строки» (×10 мс в read path)Время «бегущей строки» (×10 мс в read path).
1340x0086Holding03/06/10RWнетТаймаут неактивности Modbus, сек (0=выклТаймаут неактивности Modbus, сек (0=выкл.).
1350x0087Holding03/06/10RWнетРежим входа IN1Адреса 135–138. Режим входа IN1..IN4: 0 = кнопка (short/long/double/short+long); 1 = выключатель с фиксацией.
1390x008BHolding03/06/10RWнетДействиеАдреса 139–142. Действие: короткое / положение «Вкл» (switch).
1430x008FHolding03/06/10RWнетДействиеАдреса 143–146. Действие: длинное / положение «Выкл» (switch).
1470x0093Holding03/06/10RWнетДействиеАдреса 147–150. Действие: двойное нажатие.
1510x0097Holding03/06/10RWнетДействиеАдреса 151–154. Действие: короткое + длинное.
1550x009BHolding03/06/10RWнетПорог длинного нажатия, мс (500…5000, def 1000)Адреса 155–158. Порог длинного нажатия, мс (500…5000, def 1000).
1590x009FHolding03/06/10RWнетОкно второго нажатия, мс (0…2000, def 300Адреса 159–162. Окно второго нажатия, мс (0…2000, def 300; 0 = double/shortlong выкл.).
1630x00A3Holding03/06/10RWнетDebounce, мс (10…2000, def 50Адреса 163–166. Debounce, мс (10…2000, def 50; энкодер → 10).
1670x00A7Holding03/06/10RWнетСкорость dim при удержании, мс/шаг (5…500, def 20)Адреса 167–170. Скорость dim при удержании, мс/шаг (5…500, def 20).
1710x00ABHolding03/06/10RWнетШаг short/inc-dec, permille 1…1000 (def 10)Адреса 171–174. Шаг short/inc-dec, permille 1…1000 (def 10).
1750x00AFHolding03/06/10RWнетШаг double, permille 1…1000 (def 10)Адреса 175–178. Шаг double, permille 1…1000 (def 10).
1790x00B3Holding03/06/10RWнетЭнкодер 1/2 типАдреса 179–180. Энкодер 1/2 тип: 0=выкл, 1=AB (пары IN1/IN2 и IN3/IN4).
1810x00B5Holding03/06/10RWнетЦель энкодераАдреса 181–182. Цель энкодера: 0..3 = R/G/B/W, 4 = RGB, 5 = все, 6=Hue, 7=Sat, 8=Val, 9..12=CCT1/2 T/bri.
1830x00B7Holding03/06/10RWнетШаг энкодера, permille (def 10)Адреса 183–184. Шаг энкодера, permille (def 10).
1850x00B9Holding03/06/10RWнетИмпульсов AB на логический шаг (def 4)Адреса 185–186. Импульсов AB на логический шаг (def 4).
5030x01F7Holding03/06/10RWнетSafe-state PWM R/G/B/W, permille 0Адреса 503–506. Safe-state PWM R/G/B/W, permille 0..1000. С 1.0.2.2 ПРИМЕНЯЕТСЯ на выходы PWM при таймауте связи (holding 134): каналы устанавливаются на эти уровни по схеме рег 49 (параллельные пары / 4×W следуют топологии). Гейт reg 600–603. С 1.0.2.2 СОХРАНЯЕТСЯ в EEPROM (запись взводит coalesce; svc_rgbw_config голова au8_safe_ao) — после перезагрузки уровни восстанавливаются.
6000x0258Holding03/06/10RWнетSafe-state coil R/G/B/W (0/1)Адреса 600–603. Safe-state coil R/G/B/W (0/1). С 1.0.2.2 задаёт, какие каналы включаются в safe-режиме: 0 = канал гасится независимо от 503–506. Не «липкий»: следующая команда/уровень (после возобновления обмена) возвращает нормальную работу. С 1.0.2.2 СОХРАНЯЕТСЯ в EEPROM (4 бита в svc_rgbw_config голова u8_safe_do_mask) — после перезагрузки флаги восстанавливаются.
10010x03E9Holding03/06/10WнетFactory reset EEPROM (отложенно, main loop)Factory reset EEPROM (отложенно, main loop). RGBW: оба RS-485 — слейвы, 115200 8N1, адрес 13 (holding 128 / 110–112); WorkPort Spy 640 = 0.
10050x03EDHolding03/06/10WнетСерийный номер FC16 (lo/hi)Адреса 1005–1006. Серийный номер FC16 (lo/hi).
40000x0FA0Holding03/06/10RWнетEXFX info (16 regs / 32 B LE)Адреса 4000–4015. EXFX info (16 regs / 32 B LE): [0..1] magic u32 = 0x45584658 («EXFX»); [2] slot 0..31; [3] reserved; [4..5] total_bytes u32; [6..7] crc32 u32 (zlib CRC всего образа слота); [8] sector_count (0 = вычислить); [9..15] reserved. FC16 qty=16 @ 4000 запускает erase.
40160x0FB0Holding03/06/10RнетStatusStatus: 0 IDLE, 1 ERASING, 2 PROGRAMMING, 3 VERIFY, 4 DONE, 5 ERROR. (на READ перекрывает info[8]; WRITE info — OK)
40170x0FB1Holding03/06/10RнетProgress bytes loProgress bytes lo.
40180x0FB2Holding03/06/10RнетProgress bytes hiProgress bytes hi.
40190x0FB3Holding03/06/10RнетLast error (0=noneLast error (0=none; см. EXFX_ERR_*).
41280x1020Holding03/06/10WнетCommitCommit: 1=verify CRC→DONE/ERROR; 2=abort.
10x0001Coil01/05/0FRWнетCoil 1–4Адреса 1–4. enable каналов R / G / B / W (TIM3 PWM). 1 = включён, 0 = выключен. Биты зеркалятся в holding 17. CH bar LED на MCU нет (`RGBW_HAS_CH_BAR_LEDS=0`); статус — PB6/PB2.
50x0005Coil01/05/0FRWнетCoil 5–6Адреса 5–6. группы: 5 — RGB (R+G+B; W выкл. при включении группы); 6 — все каналы R+G+B+W.
70x0007Coil01/05/0FRWнетCoil 7–17Адреса 7–17. не используются (чтение 0; запись — illegal или no-op).
180x0012Discrete02RнетDiscrete 18–21Адреса 18–21. сухие входы IN1..IN4 (active low, debounce). 1 = замкнут на GND, 0 = разомкнут. Управляют LED локально через svc_rgbw_di_ctrl (holding 135–186).
4000x0190Holding03/06/10RWнетLedCount / LedCount0Пиксели strip0: 1..1024 (RGB) или 1..400 (RGBW).
4010x0191Holding03/06/10RWнетТип светодиода / протокол (смТип светодиода / протокол (см. таблицу LedType).
4020x0192Holding03/06/10RWнет0 = pixel pool (reg 1100+)0 = pixel pool (reg 1100+); 1 = FX engine (params в reg 405–407); 2 = сценарий из Flash (W25Q).
4030x0193Holding03/06/10RWнет0 = RGB (3 байта/px), 1 = RGBW (4 байта/px)0 = RGB (3 байта/px), 1 = RGBW (4 байта/px).
4040x0194Holding03/06/10RWнет0 = только по cmd REFRESH0 = только по cmd REFRESH; 1 = auto после pool write.
4050x0195Holding03/06/10RWнетВстроенный FX mode id (RenderSource=1)Встроенный FX mode id (RenderSource=1). Каталог ПЕРЕГРУППИРОВАН и ПЕРЕНУМЕРОВАН 2026-08-21 (пре-релиз): непрерывные id 0..81 по категориям (база, цветные, вода, огонь, небо, физика, природа, текст, знаки, спец.). Этим же раундом УДАЛЕНЫ Fade и RandomColor и ОБЪЕДИНЁН дублирующий режим колец на воде (тело старого «Кругов на воде» удалено, выжил более богатый рендер «Дождь по воде» на id 16). Общий темп: кадр 20..250 мс от reg 406; бегущие и кольцевые режимы тикают >= 20 fps и рисуют ПРОМЕТЁННЫЙ за кадр сегмент (движение плавное на любой длине цепи, без перескока пикселей); смена режима всегда очищает полотно. База/заливка 0..2: 0 Static, 1 Blink, 2 Breath Цветные и радуга 3..12: 3 Rainbow (плавно бегущий градиент радуги вдоль ленты, движение по времени) 4 RainbowCycle (2D радиальная радуга из центра полотна; 1D: классический цикл оттенков) 5 Радуга-2D (диагональная, движется по времени) 6 Игра цветов (классический 12-секторный художественный цветовой круг вокруг центра полотна, вращается по часовой от reg 406; к центру светлее; 1D: вся лента плавно проходит цветовой круг) 7 Праздник (PARTY-волны + глиттер) 8 Аврора (живые занавесы AURORA, больше движения и переливов) 9 Цветовые волны (плывущие полосы + вертикальные переливы) 10 Спиннер (вертушка: цвет = угол вокруг центра, секторы перетекают друг в друга; reg 406 = скорость вращения; вращение по времени) 11 Confetti 12 MatrixPlasma — плавная 2D HSV-плазма Вода 13..25 (палитры встроены — цветовые регистры не нужны, яркость reg 407 как обычно; матричные — на ленте короче тайла показывают фрагмент): 13 MatrixRain — падающие капли, по умолчанию сине-голубые (FxAux меняет цвет), яркая голова + затухающий след 14 Ливень (дождь ×3, штрихи 2-3 px, вспышки) 15 Капля (несколько капель РАЗНОЙ длины и скорости, плавное полупиксельное движение, затухающие следы) 16 Дождь по воде (спокойная вода; ПИКСЕЛЬ УДАРА («плинк»), затем расходящиеся кольца на океанском фоне; <= 2-3 кольца и ~1 капля/с, concurrency от FxDensity 1..3; кольцо расширяется субпиксельно и плавно, спокойный характер; ОБЪЕДИНЯЕТ прежние «Круги на воде» и «Дождь по воде») 17 Мыльные пузыри (круги разных диаметров с ярким центром и гаснущим краем возникают, растут и лопаются в случайных местах) 18 Круги-всплески (НЕСКОЛЬКО точек удара одновременно; из каждой расходятся затухающие кольца своего диаметра 4..11 px на тёмном фоне; субпиксельное плавное расширение с мягкими кромками; цвет сине-белый, высокий байт FxAux переопределяет; бывший «Пульс цвета») 19 Океан (слоистые волны OCEAN, движение по времени) 20 Морская волна (бегущие гребни + белые барашки) 21 Прибой (ВОЛНИСТЫЙ синусоидальный фронт; три волны накатывают всё дальше, затем одна откатывает в море и растворяется; цикл 6-12 с от reg 406) 22 Цунами (огромная БУРЛЯЩАЯ волна с пеной и турбулентностью быстро проносится через полотно, сметая всё; период 4-9 с) 23 Водопад (сплошные струи разной яркости несутся вниз, белые нити + пена внизу) 24 Брызги (шар падает по центру; при ударе брызги разлетаются по дугам в стороны и вверх; затухающие следы) 25 Шторм (хаотические волны + ПОРЫВЫ ветра + пена + молнии режима 57) Огонь 26..29: 26 Fire (языки пламени во всю высоту, оранжево- красная палитра FIRE, «танцуют») 27 Камин (heat-конвекция, палитра FIRE; 1D: зоны) 28 Свеча (локализованное пламя: яркое ядро внизу по центру, сужается кверху к колышущемуся тусклому кончику, вокруг темно; общий уровень и высота — прежнее 1/f-мерцание; 1D: мерцание) 29 Лава (пятна действительно ТЕКУТ, палитра LAVA) Небо/свет 30..36: 30 Рассвет (ОРАНЖЕВЫЙ диск солнца поднимается над линией горизонта, небо светлеет по мере подъёма; reg 406 = длительность: 0=30 мин .. 255=1 мин) 31 Закат (обратный таймлайн 30) 32 Циркадный (CCT+яркость от часов 453/454, 24-узловая кривая + медленное «дыхание» ~23 с; часы не заданы → тёплый ночник) 33 Фейерверк (ракета → разрыв 10 частиц + цветная вспышка-фигура: снежинка/одуванчик/ ромб/звезда; разлёт ~1.75x быстрее, фигура растёт 2 px/кадр и каждая яркая точка несёт мягкий ореол-размытие 1 px) 34 Салют (ОДНА ракета снизу → взрыв в центре полотна → цветные кольца расходятся и заполняют весь экран → затухание; расширение 2x быстрее, фронт кольца с мягкими кромками 1/3 яркости с обеих сторон) 35 Звёздная ночь (Ван Гог: сине-голубые вихри с золотыми акцентами, 8 тёплых мерцающих звёзд с ореолами, месяц в углу; палитра STARRY; reg 406 = скорость вихрей) 36 Метеоритный дождь (метеоры вразнобой на разных высотах и колонках, затухающие следы) Физика/геометрия 37..54: 37 Спираль (3 вращающихся рукава) 38 Warp (световая сфера растёт из центра до бледно-голубой заливки, затем белые точки-звёзды быстро разлетаются из центра; цикл повторяется) 39 Прыгающие мячи (диски ~5×5 px (радиус 2, яркое ядро + мягкая кромка 1 px) с НАСТОЯЩЕЙ физикой: гравитация, отскок от пола с реституцией ~0.78 (высоты затухают 100→61→37 %), горизонтальная скорость с лёгким затуханием, стены упругие; стая растёт 1→4 на тайле, 1→6 на широком полотне) 40 KITT (двойной сканер с эксп. хвостами; красный, FxAux меняет цвет; за кадр прорисовывается весь пройденный сегмент) 41 Сердцебиение (тёмный ровный фон, 4-камерное сердце из двух половин СЖИМАЕТСЯ в ритме «тук-тук»; reg 406 = темп 40..130 BPM) 42 Песочные часы (зёрна падают по одному и складываются снизу; 7 цветов радуги по очереди поверх предыдущей заливки, затем многоцветная фаза и цикл; зерно идёт четверть-пиксельными шагами при кадре <= 50 мс; reg 406 = скорость падения) 43 Эквалайзер (столбики как спектр-анализатор: синтез уровней случайным блужданием + общий бит ~0.5-0.8 с от reg 406; градиент снизу зелёный → жёлтый → красный, белая peak-hold точка медленно падает; 1D: вся лента — один VU-бар) 44 «Узоры» (мандала: цветок/снежинка/астериск/ вспышка-лучи/звезда, рост из центра; калейдоскопические симметричные фигуры распускаются из центральной точки, держатся, схлопываются обратно в точку, затем следующая фигура; коралловый цвет со сдвигом оттенка, FxAux старший байт фиксирует цвет; reg 406 = скорость роста; 1D — цветной «бутон» растёт из середины ленты к обоим концам) 45 Comet (хвост продлён на пройденный за кадр путь — плавный бег на любой длине) 46 Scan (зёрна летят от начала к концу и складываются в стопку; лента полна → сброс и заново; яркие головы + прометённый след) 47 Pac-Man (жёлтый колобок с открывающимся ртом гонится за червяком; червяк 12 сегментов (матрица) / 14 px (1D), изгиб ±1 ряд вокруг ряда пути, ПОЛЗЁТ перистальтикой; 1D: блок + бегущая волна яркости по телу; оба рисуют прометённые следы) 48 ColorWipe (заливка туда-обратно; граница не может «рваться» — заливка сплошная) 49 FillConverge (заполнение с двух концов к середине, остаётся гореть; яркие «головы») 50 FillRun (последовательное заполнение, остаётся гореть; яркая «голова») 51 Сопровождение (ночная подсветка дорожки: пул из N светодиодов плавно едет вдоль ленты, выходит за край и заходит снова; передний край плавно разгорается ~2 px, задний затухает шлейфом ~4 px + прометённая полоса за кадр; reg 406 = время прохода ленты 5 с (0) .. ~1.2 с (255); FxAux: низкий байт биты 0..6 = цвет 0..6 (0 = тёплый белый), бит 7 (+128) = обратное направление; высокий байт = длина пула в px, 0 = 60; матричная цепочка трактуется как линейная лента) 52 Theater 53 Змейка-ИГРА (еда-точка случайного цвета в случайной свободной клетке; змейка ползёт к ней ПЛАВНО (интерполяция головы и хвоста между клетками, клетка ~80..120 мс от reg 406), съедает и растёт; тело раскрашено цветами съеденной еды по порядку; жадный путь к еде с обходом своего тела; тупик или бюджет тела (190 клеток) → рестарт с короткой змейки; 1D: еда на случайной позиции, рестарт при теле в полленты) 54 Sparkle (точки зажигаются и ОСТАЮТСЯ до заполнения всего полотна, затем сброс) Природа/погодные сцены 55..61: 55 Снегопад (снежинки ДВУХ размеров — точка и «плюс»-хлопья, дрейф, затухающие следы, тающие сугробы) 56 Снежинки (калейдоскопические 6-лучевые снежные узоры, бодрое вращение; бывший «Диско») 57 Молния (тёмный фон, серии 1-3 вспышек, паузы 3-15 с) 58 Летний лес (переливы зелени + плывущие пятна света и тени, блики) 59 Осенний лес (то же в палитре AUTUMN + падающие листья) 60 Падающая звезда (комета с ярким ядром и затухающим хвостом; направление полёта СЛУЧАЙНОЕ, старт с верхней или боковой кромки, угол/скорость/время жизни случайные; звёздное небо остаётся) 61 Ураган (вращающийся по часовой вихрь: 2 спиральных облачных рукава, тёмный спокойный «глаз» в центре, ярче у стенки глаза, 3 обломка на внешних орбитах; палитра STORMCLOUD; reg 406 = скорость вращения; 1D: быстрые волны с концов к центру, тёмный глаз посередине) Текст и цифры 62..65 (матричные, геометрия 16×16 из reg 417/418): 62 MatrixText — текст 5×7 из окна 516–579; рендер 2x чёткий (полная яркость, без сглаживания); если 2x шире полотна, а 1x помещается — АВТОПОДБОР: одна статичная строка 1x по центру; бегущая строка только когда и 1x не влезает (субпиксельно ровный ход); зазор 3px@2x/2px@1x; низкий байт FxAux 455 = стиль анимации 0..17 (см. 455), высокий байт — цвет (список как у 63/40); цвета строк и фона переопределяют regs 463..466 (RGB565); reg 494 TextLines=2 → две строки (из стилей в двухстрочном режиме работает только 16 — см. 494) 63 Часы HH:MM (по цифре на тайл 16×16; РИСОВАННЫЕ крупные цифры 10×14 со скруглён- ными углами (штрих 2 px); двоеточие мигает 1 Гц на стыке тайлов 2/3; < 4 тайлов — правые цифры; часы не заданы — «--:--»; цвет: FxAux, по умолчанию янтарный) 64 Метеостанция (TextLines 494): 0/1 = ОДНА строка, цикл 5 с: время → дата ДД.ММ.ГГ → температура → влажность → давление (каждое отдельно, значения 14 px, размерность 7 px, пробел перед единицей); давление «748 мм.рт.». 2 = две строки 5×7, зазор 2 px (7+2+7): строка 1 — время ЧЧ:ММ слева и температура справа (значение, 2 px, «°C»); строка 2 — дата ДД.ММ.ГГ из 457/462, влажность 459 («45 %») и давление 461 («748 мм.рт.») по 5 с, если оба не влезают — влажность → давление → дата. СТАТИКА, без бегущей строки; цвета: время белое, дата/влажн./давл. голубые, температура янтарная; FxAux и 463..466; полночь двигает дату (февраль = 28, БЕЗ високосных лет), 31.12 → 01.01 наращивает год. Прослушка 696..709: если любой UID ≠ 0 — только привязанные поля (UID 0 = скрыто), 453/457–462 игнорируются; время ЧЧ:ММ как локальные часы (СС на ленту не выводится); дата ДД.ММ. Все UID 0 — локальный источник как выше. 65 Логотип ЦИНТРОН (фирменный синий ~R64 G100 B230: иконка-микросхема 13×13 (контур 9×9, ядро 3×3, выводы 2 px) + надпись «ЦИНТРОН» 5×7 справа; интро: иконка проявляется ~0.5 с, буквы Ц-И-Н-Т-Р-О-Н влетают по одной справа налево (~0.25..0.4 с/буква от reg 406), полный логотип держится ~3.5 с, цикл; узкое полотно — чередование иконка/бегущая строка; окно 516 не используется) Указатели/таблички 66..75 (направление/вариант и цвет — reg 455 FxAux): 66 Стрелка (по стрелке на тайл; низкий байт FxAux: 0=вправо,1=влево,2=вверх,3=вниз; на многотайловом полотне стрелки зажигаются КАСКАДОМ в сторону направления, все горят → все гаснут → цикл; темп ~2-4 тайла/с от reg 406; один тайл — ровное свечение) 67 Шеврон (последовательная «прометающая» подсветка: первый «>», затем оба, затем пауза — читается как движение; темп от reg 406) 68 Знак «Внимание» (жёлтый треугольник с КРАСНЫМ «!», мигает 100 %/30 % 1 Гц) 69 Знак STOP (красный круг с белой полосой, медленная пульсация) 70 Авария (жёлто-чёрные диагональные полосы, движутся; FxAux низкий байт 1 = статично) 71 «ВЫХОД» (ЗЕЛЁНЫЙ текст на тёмном, без заливки фона; встроенная строка, окно 516 не используется) 72 «ПОЖАР» (крупный красный текст чередуется ~2 с с центрированной иконкой пламени; без фоновой заливки) 73 «ТРЕВОГА» (красный текст на тёмном, мигание ярко/тускло 1 Гц; бегущая строка, если шире полотна) 74 «!» (большой жёлтый мигающий на каждый тайл) 75 Уровень (СТАТИЧНЫЙ индикатор 0..100 % без анимации — мастер пишет FxAux: низкий байт биты 0..6 = процент (>100 = 100), бит 7: 0 = вертикальная заливка снизу вверх, 1 = горизонтальная слева направо; высокий байт = цвет (0 = зелёный); граница заливки подсвечена ярче на 1 px; 1D: заливка от начала ленты, бит 7 = от конца) Специальные 76..80: 76 Флаг РФ (бело-сине-красный триколор колышется как ткань на ветру: смещение колонок двумя бегущими синусами ±1..2 ряда + свет/тень по склону волны; полосы 5+5+6 рядов; reg 406 = скорость ветра; 1D: три трети + бегущая волна яркости) 77 «РОССИЯ» (встроенная надпись 5x7 cp1251 на тёмном фоне, буквы раскрашены триколором по рядам глифа: 0-1 белый / 2-4 синий / 5-6 красный; шире полотна — бегущая строка; окно 516 НЕ используется; 1D: статичные трети триколора) 78 Снаряд (у правого края стоит СТЕНА 4 px кирпично-серой кладки; слева влетает белый снаряд с размытым оранжевым хвостом (свободный пролёт ~0.6..1 с от reg 406); при ударе — белая вспышка и стена РАССЫПАЕТСЯ: клетки кладки разлетаются обломками по физике (радиальные скорости от точки удара, гравитация, один гасящий отскок от пола), оседают/гаснут, пауза, стена отстраивается, новый случайный ряд удара; FxDensity = количество обломков; 1D: точка с хвостом бежит к 4-px стенке в конце, искры в обе стороны) 79 «Стрела Амура» (белая стрела влетает слева и пронзает бьющееся красное сердце справа: древко, наконечник «>», оперение «<»; при попадании — вспышка + розово-красные искры + большой удар сердца; пауза ~2.5 с, затем повтор; reg 406 = скорость стрелы; 1D — белая точка летит к сердцу-глифу в конце) 80 «Метеориты» (снаряды-спрайты, разная периодичность, без стены; FxDensity=количество: несколько снарядов-спрайтов (нос + металлический корпус + оранжевый шлейф, как у режима 78) летят слева направо со случайными интервалами, из случайных строк, со слегка разной скоростью; каждый улетает за правый край и переиспользуется; reg 406 = скорость, FxDensity 456 = сколько метеоров/как часто; 1D — яркие точки с оранжевыми хвостами) 81 «Индикатор линии» (Spy/Master, эталон СМИ2-М): до 4 holding/input-значений с выбранного RS-485 порта; layout как режим 64 (494=0/1 — одна строка, значение 14 px + единица 7 px, страницы 5 с; 494=2 — две строки 5×7 одновременно: два слота — по одному на строку на всю ширину; между значением и размерностью 2 px). Типы TIME ЧЧ/ММ/СС на ленте ЧЧ:ММ как режим 64 (СС биндится, но не рисуется: ЧЧ:ММ:СС сжимает 64 px до sx=1). Конфиг holding 640..695. Не влезает — бегущая строка. Пределы 688..695 (ниже синий / выше красный). Нет данных / stale → «--». 1D: фон. STRING/REAL/ASCII не в этом релизе. 128..209 = Gyver aliases → 0..81 ТЕКУЩЕЙ нумерации (регруп 2026-08-21; база алиасов перенесена 64→128 в 1.0.2.2); иное → Static. См. Core/Inc/svc_fx_engine.h (fx_mode_t).
4060x0196Holding03/06/10RWнет00..255 (выше = быстрее).
4070x0197Holding03/06/10RWнетЯркость / param FX 0Яркость / param FX 0..255 (product → svc_fx_engine).
4080x0198Holding03/06/10RWнетРежим при включении (product)Режим при включении (product).
4090x0199Holding03/06/10RWнетbit0 = LOOP для Flash playbackbit0 = LOOP для Flash playback; прочие — product.
4100x019AHolding03/06/10RWнетReadRead: 0=unlocked, 1=locked. Write 0x10C8 → unlock; write 0 → lock. При lock блокируются settings 400–409, 411–419 (Ch2Mode 419 — внутри блока); pool 1100+, cmd 430, poke 450–452, 453–459, 461–466, TextLines 494 — всегда.
4110x019BHolding03/06/10RWнетГамма / curve (product)Гамма / curve (product).
4120x019CHolding03/06/10RWнетПорядок байт на линии (product)Порядок байт на линии (product).
4130x019DHolding03/06/10RWнет0 = SINGLE_WS (DI0=PB5 SPI DMA0 = SINGLE_WS (DI0=PB5 SPI DMA; PB3 Hi-Z); 1 = DUAL_WS — два выхода через ОДИН SPI-движок: кадры каналов идут последовательно, внешний ключ-демультиплексор (2×SPDT, SELECT=CH2SEL: PA5 продукт / PA0 HIL) коммутирует 2-пиновый разъём. SEL=0: пин1=MOSI, пин2=SCK; SEL=1: пин1=GND, пин2=MOSI (кадр канала 2); подтяжки к GND на плате держат неактивные линии в нуле. ВНИМАНИЕ: на плате БЕЗ ключа режим 1 включать нельзя — кадр канала 2 уходит в ту же линию, что и канал 1 (пин1 всегда MOSI), и портит картинку канала 1; это не "второй выход не подключён". Битбанг-вывод DI1 упразднён (1.0.2.2). Режим канала 2 — reg 419. 2 = SPI_CLOCKED (APA102: MOSI PB5 + SPI1_SCK AF PB3; требует CH2SEL=0 — вне кадра канала 2 он низкий всегда). DUAL_WS и SPI_CLOCKED взаимоисключающи. При Mode=2 LedType принудительно APA102; LedCount1=0. Уход с DUAL_WS сбрасывает LedCount1=0 и Ch2Mode (419)=0.
4140x019EHolding03/06/10RWнетПиксели strip1 (DUAL_WS)Пиксели strip1 (DUAL_WS): 0..512 RGB / 0..384 RGBW (расширено с 200/150 в 1.0.2.2); иначе только 0. Pool: strip0 затем strip1; (LedCount0+LedCount1)×bpp ≤ 3072. Используется режимами 419=2/4 (INDEPENDENT / CONTINUATION); в SYNC/MIRROR игнорируется.
4150x019FHolding03/06/10RWнетСлот W25Q EXFX 0Слот W25Q EXFX 0..31 (play / LOAD_FLASH).
4160x01A0Holding03/06/10RWнет0=stop, 1=play, 2=pause (Flash playback)0=stop, 1=play, 2=pause (Flash playback).
4170x01A1Holding03/06/10RWнетГеометрия одной матрицы, УПАКОВАНО (с 1Геометрия одной матрицы, УПАКОВАНО (с 1.0.2.2): младший байт = ширина плитки в пикселях 1..64, старший байт = высота плитки в пикселях: 0 => 16 по умолчанию, иначе 8..32. Примеры: 16×16 = 0x0010 (обратная совместимость, как раньше def 16); 8×8 = 0x0808; 8×32 = 0x2008 (ш8 в832); 32×8 = 0x0820. Невалидная упаковка (ширина вне 1..64 или высота вне {0}∪8..32) => exception 3. Число каскадных матриц НЕ настраивается — выводится: N = LedCount / (ширина × высота); полотно (ширина × N) × высота, x растёт вдоль каскада. До 1.0.2.2 старший байт игнорировался (высота фиксированно 16). СОХРАНЯЕТСЯ в EEPROM (с 1.0.2.2; см. примечание ниже).
4180x01A2Holding03/06/10RWнетРазводка матрицы (с 1Разводка матрицы (с 1.0.2.2), биты: bit0: 0 = serpentine (нечётные строки справа налево), 1 = progressive (все строки слева направо); bit1: 0 = начало сверху, 1 = снизу; bit2: 1 = зеркалить X (справа налево); bit3: 1 = column-major (проходы вдоль Y). биты 4-6 TileMode (с 1.0.2.2): КАК эффект раскладывается на каскад плиток (глобально, задаёт мастер, без правок под эффект): 0 = SPAN (по умолчанию) — один эффект растянут на всё полотно (как раньше; полная обратная совместимость); 1 = REPLICATE — эффект рендерится на ОДНОЙ плитке и КОПИРУЕТСЯ на все (4 матрицы = 4 одинаковые копии, каждая целая в своей); 2 = MIRROR — как REPLICATE, но каждая НЕЧЁТНАЯ плитка зеркалится по X (калейдоскоп). TileMode 3..7 → exception 3. bit7 зарезервирован (должен быть 0), иначе exc 3. биты 8-11 TileCount (с 1.0.2.2): ЯВНОЕ число плиток на линии — мастер задаёт размер матрицы, НЕ трогая LedCount (400): 0 = AUTO (по умолчанию) — число плиток выводится из LedCount / (ширина×высота), как раньше; 1..4 = ровно столько плиток образуют полотно: effective_led_count = TileCount×ширина× высота — применяется ко ВСЕЙ геометрии (fx_matrix_geom), длине рендера FX, проходу SPAN/REPLICATE/MIRROR и числу выводимых на ленту пикселей, независимо от LedCount. Клампится до целых плиток, влезающих в пул (≤3072 Б); канал 2 сохраняет свой LedCount1. TileCount 5..15 → exception 3. биты 12-15 зарезервированы (0), иначе exc 3. СОХРАНЯЕТСЯ в EEPROM (с 1.0.2.2; layout+TileMode+ TileCount целиком, см. примечание ниже). Упаковка: 418 = layout | (TileMode<<4) | (TileCount<<8). Примеры: 0x0000 = serpentine, SPAN, AUTO (дефолт, как раньше); 0x0410 = 4 плитки, REPLICATE, serpentine (layout 0 | TileMode 1<<4=0x10 | TileCount 4<<8=0x400) — 4 матрицы, каждая показывает эффект целиком; 0x0120 = 1 плитка, MIRROR (TileMode 2<<4=0x20 | TileCount 1<<8=0x100); 0x0400 = 4 плитки, SPAN — один эффект на все 4. СОХРАНЯЕТСЯ в EEPROM целиком (с 1.0.2.2; см. примечание ниже) — layout, TileMode и TileCount переживают перезагрузку.
4190x01A3Holding03/06/10RWнетРежим второго выхода (канал 2Режим второго выхода (канал 2; только при LineMode 413=1 DUAL_WS), def 0 (с 1.0.2.2; перенесён с 457 до релиза — рядом с топологией 413/414). Кадр канала 2 идёт через тот же SPI-движок сразу после кадра канала 1 (внешний ключ CH2SEL, см. 413) — без запрета прерываний, оба канала на полной кадровой частоте (время линии 800 кГц: ~31 мс на 1024 px + ~15 мс на 512 px, последовательно). 0 = OFF: канал 2 выключен (default); 1 = SYNC: канал 2 повторяет логическое содержимое канала 1; LedCount1 игнорируется, длина = min(LedCount0, 512 RGB / 384 RGBW); 2 = INDEPENDENT: канал 2 показывает СВОЁ содержимое — свой срез пула после strip0 (LedCount1 пикселей) И, с 1.0.3.0, свой эффект: блок 580..587 задаёт каналу 2 отдельные FxId/скорость/параметр/вариант/ плотность, источник и геометрию матрицы. ДО 1.0.3.0 «независимый» означало только срез пула: движок эффектов рисовал лишь канал 1, и срез канала 2 оставался чёрным, если мастер сам не заполнял 1100+; 3 = MIRROR: как SYNC, но порядок пикселей на линии обратный (последний пиксель канала 1 — первый на канале 2); 4 = CONTINUATION: одно непрерывное полотно — канал 1 показывает логические пиксели 0..LedCount0-1, канал 2 — LedCount0.. LedCount0+LedCount1-1; FX/матрица/пул рендерят суммарную длину (матричный каскад линейных индексов продолжается на канал 2). Предел — пул 3072 Б: суммарно 1024 px RGB (напр. 2+2 матрицы 16×16); каскад 4+2 (1536 px) в текущий пул НЕ помещается. Иные значения → exception 3. Запись ≠0 при LineMode≠DUAL_WS → exception 3 (правило как у 414); уход с DUAL_WS сбрасывает в 0. Блокируется lock (reg 410) как топология 413/414. СОХРАНЯЕТСЯ в EEPROM (с 1.0.2.2, как 413/414; см. примечание ниже).
5800x0244Holding03/06/10RWнетЭффект канала 2, тот же каталог 0Эффект канала 2, тот же каталог 0..81, что и reg 405 (и те же Gyver-алиасы 128+). def 0.
5810x0245Holding03/06/10RWнет00..255, как 406. def 128.
5820x0246Holding03/06/10RWнет00..255 (яркость/параметр), как 407. def 128.
5830x0247Holding03/06/10RWнет16-битное поле варианта/цвета, как 45516-битное поле варианта/цвета, как 455. def 0.
5840x0248Holding03/06/10RWнет00..255, как 456. def 128.
5850x0249Holding03/06/10RWнет0 = срез пула (мастер пишет пиксели сам), 1 = FX-движок канала 20 = срез пула (мастер пишет пиксели сам), 1 = FX-движок канала 2. def 1. Значение 2 (Flash) НЕ поддерживается → exception 3: проигрыватель сценариев из Flash один на всё полотно, второго экземпляра нет.
5860x024AHolding03/06/10RWнетГеометрия плитки канала 2, упаковка как у 417 (младший байт ширина 1Геометрия плитки канала 2, упаковка как у 417 (младший байт ширина 1..64, старший высота 0=>16, иначе 8..32). def 0x0010 (16x16).
5870x024BHolding03/06/10RWнетРаскладка канала 2, упаковка как у 418 (биты 0-3 разводка, 4-6 TileMode)Раскладка канала 2, упаковка как у 418 (биты 0-3 разводка, 4-6 TileMode). def 0.
6400x0280Holding03/06/10RWнет0 = выкл (оба порта слейвы, как раньше)0 = выкл (оба порта слейвы, как раньше); 1 = Port A (USART2, торцевая); 2 = Port B (USART1, внешний разъём). Выбранный порт — Spy или Master; другой остаётся нашим слейвом. Свои baud/parity/stop (642/643); Fast MB на WorkPort выключен.
6410x0281Holding03/06/10RWнетмлмл. байт: 0 off / 1 Spy / 2 Master. bit8 = tap-on-slave: матчер на CRC-OK кадрах слейв-порта (в т.ч. чужой UID), без swallow poll. Цель UID ≠ наш адрес 128. Master+WorkPort=0 отвергается.
6420x0282Holding03/06/10RWнетКод скорости WorkPort, как holding 110 (96 = 9600)Код скорости WorkPort, как holding 110 (96 = 9600). Игнор, если только tap-on-slave.
6430x0283Holding03/06/10RWнетмлмл. байт parity как holding 111 (0=нет, 1=нечёт, 2=чёт); ст. байт stop 1/2.
6440x0284Holding03/06/10RWнетПериод опроса Master, мсПериод опроса Master, мс. def 1000.
6450x0285Holding03/06/10RWнетТаймаут ответа Master, мсТаймаут ответа Master, мс. def 1000.
6460x0286Holding03/06/10RWнетНет свежих данных → на матрице «--»Нет свежих данных → на матрице «--». def 10000.
6470x0287Holding03/06/10Rнетмлмл. байт last error (0 ok, 1 timeout, 2 cfg, 3 tx); биты 8..11 stale слотов 0..3; bit12 in-flight.
4200x01A4Holding03/06/10RнетБлок «занято» A (bitmask операцийАдреса 420–427. Блок «занято» A (bitmask операций; 0 = idle).
4280x01ACHolding03/06/10Rнет0Адреса 428–429. 0.
4340x01B2Holding03/06/10RWнет8 пресетов × 2 regsАдреса 434–449. 8 пресетов × 2 regs: [RG][BW] как pixel pool (R low/G high; B low/W high в RGBW). Не блокируются lock (reg 410): пиксельная поверхность, как pool/poke. ДОП. НАЗНАЧЕНИЕ (2026-08-13): при RenderSource=FX reg 434 читается как БАЗОВЫЙ цвет FX color1 в формате RGB565 (тот же хелпер, что 463..466); 0 → нейтральный БЕЛЫЙ (никогда красный). reg 435 → color2 в RGB565 (0 = не менять). Формат [RG][BW] выше остаётся для отрисовки pool — одно u16, две трактовки по источнику.
4300x01AEHolding03/06/10WнетMB2WS_CMD_*MB2WS_CMD_*: 0 none, 1 REFRESH, 2 CLEAR_POOL, 3 SAVE_FLASH (deprecated — upload = 4000+; → status ERROR), 4 LOAD_FLASH (bind FlashSlot + header/fps; status BUSY→DONE/ERROR).
4310x01AFHolding03/06/10Rнет0 idle, 1 accepted, 2 busy, 3 done, 4 error0 idle, 1 accepted, 2 busy, 3 done, 4 error. BUSY также во время Flash show при ошибке слота.
4500x01C2Holding03/06/10RWнетИндекс пикселя для одиночной записи (0Индекс пикселя для одиночной записи (0..LedCount-1).
4510x01C3Holding03/06/10RWнетR (low), G (high) для LedIndexR (low), G (high) для LedIndex.
4520x01C4Holding03/06/10RWнетB (low), W (high)B (low), W (high); W игнорируется в RGB.
4530x01C5Holding03/06/10RWнетМягкие часы суток, часы 0Мягкие часы суток, часы 0..23 (с 1.0.2.2).
4540x01C6Holding03/06/10RWнетМягкие часы суток, минуты 0Мягкие часы суток, минуты 0..59 (с 1.0.2.2). Контракт: мастер записывает время один раз (или периодически пересинхронизирует — запись просто пересеивает); дальше модуль ТИКАЕТ АВТОНОМНО от uptime, и ЧТЕНИЕ 453/454 возвращает ИДУЩЕЕ время (минуты сами перекатываются, 23:59 → 00:00). Потеря мастера НИКОГДА не останавливает часы и завязанные на них режимы (30/31/32/63/64). 0xFFFF в обоих регистрах = время не задано (заводское состояние и после записи 0xFFFF в любой из них — сброс обоих); часы идут только когда заданы ОБА регистра. Значения вне 0..23 / 0..59 (кроме 0xFFFF) → exception. Не блокируются lock (reg 410), как poke 450–452. НЕ сохраняются в EEPROM: после перезагрузки время не задано, мастер сеет заново.
4550x01C7Holding03/06/10RWнетПараметр режима FX (с 1Параметр режима FX (с 1.0.2.2), def 0. Низкий байт = вариант/направление: стрелки 66/67: 0=вправо, 1=влево, 2=вверх, 3=вниз; авария 70: 1 = остановить полосы; эквалайзер 43: высота поля столбиков 0..100 % — 0 → пики на 5 % высоты полотна (мини-эквалайзер по умолчанию), 100 → 95 %, >100 = 100. MatrixText 62: низкий байт = СТИЛЬ анимации текста (раунд 7): 0 = автоповедение (статично/бегущая), 1 = печатная машинка с мигающим курсором, 2 = пофонарное проявление (fade-in по буквам), 3 = буквы влетают справа по одной, 4 = волна (буквы качаются ±1 px), 5 = мигание 1 Гц, 6 = буквы всплывают снизу, 7 = дешифровка (случайные глифы оседают в текст слева направо), 8 = глитч (краткие сдвиги-двойники), 9 = неон (случайная буква притухает, как неисправная трубка), 10 = буквы падают сверху с затухающими отскоками, 11 = растворение по пикселям (проявление и распад), 12 = радуга (градиент оттенков бежит по буквам; подменяет цвет), 13 = проезд насквозь (въехал справа → пауза в центре → уехал влево), 14 = разлёт (текст держится и РАЗРЫВАЕТСЯ на частицы + кольца-вспышки, затем собирается), 15 = морфинг «A|B» (перетекание слова A в слово B по пикселям; без разделителя = стиль 11), 16 = титры (вертикальная прокрутка снизу вверх; единственный стиль, работающий и в двухстрочном 494=2), 17 = дрожь (постоянный нервный джиттер ±1 px). Цикл стилей: анимация → удержание ~3 с → повтор; текст шире полотна → всегда обычная бегущая строка. «Обводка» НЕ реализована сознательно: штрих 5×7 и так 1 px — у контура нет внутренности на этом разрешении. Высокий байт = переопределение цвета: 0 = цвет режима по умолчанию, 1 красный, 2 зелёный, 3 синий, 4 белый, 5 жёлтый, 6 оранжевый (одноцветные режимы: 62 текст, 63 часы, 40 KITT, 66/67 стрелки, 18 круги, 75 уровень, 64 метеостанция — обе строки). Режим 51 (Сопровождение) переупаковывает регистр: низкий байт биты 0..6 = код цвета 0..6 (0 = тёплый белый), бит 7 = обратное направление; высокий байт = длина пула в px (0 = 60, раунд 7). Режим 75 (Уровень) переупаковывает низкий байт: биты 0..6 = процент, бит 7 = ориентация (см. каталог 405). Не блокируется lock; сохраняется в EEPROM (с 1.0.2.2).
4560x01C8Holding03/06/10RWнетПлотность/концентрация элементов и цветов FX 0Плотность/концентрация элементов и цветов FX 0..255, def 128 (с 1.0.2.2; сразу за FxAux — попарные FX-ручки 453/454 часы, 455 FxAux, 456 FxDensity). 128 = штатный вид, 0 ≈ четверть, 255 ≈ вдвое (с ограничением пулов/границ). Частицы и спавн: дождь 13/14, снег 55, листья 59, метеоры 36, пузыри 17, искры 54, конфетти 11, звёзды 60/35, фейерверк 33 (группы 1..3), капли 15, брызги 24, водопад 23, капли по воде 16 (в спокойном окне 1..3 кругов), точки 18, обломки стены 78, гирлянда-театр (шаг штрихов); для цветовых режимов (3/4 радуги, 8 аврора, 5, 9, 6 колесо) — разброс оттенков (мало = узкая полоса, много = весь круг); иное — плотность элементов/цветов. Режимы без счётных элементов (Static 0, знаки/текст 66..75, эквалайзер 43 — динамика эталонная) игнорируют. Значения >255 → exception 3. Не блокируется lock; сохраняется в EEPROM (с 1.0.2.2).
4570x01C9Holding03/06/10RWнетДата для режима 64Дата для режима 64: (день << 8) | месяц; день 1..31, месяц 1..12; 0 = не задана («--.--»). Полночь мягких часов 453/454 двигает дату по фиксированной таблице месяцев (февраль = 28 — БЕЗ учёта високосных лет, осознанное ограничение). Класс FxAux: RW, не блокируется lock, НЕ сохраняется в EEPROM; вне диапазона → exception 3. В режиме прослушки 696..709 (любой UID ≠ 0) регистр 457 на ленту не идёт.
4580x01CAHolding03/06/10RWнетТемпература int16, 0Температура int16, 0.1 °C со знаком, -999..999; 0x8000 = не задана (не рисуется). Класс FxAux (см. 457).
4590x01CBHolding03/06/10RWнетВлажность 0Влажность 0.1 %RH, 0..1000; 0xFFFF = не задана. Режим 64: целое % с пробелом («45 %»). Однострочный цикл (494=0/1) — отдельная страница; двухстрочный (494=2) — см. 64. 0 не рисуется. Класс FxAux (см. 457).
4600x01CCHolding03/06/10RWнетГлобальная шкала 0Глобальная шкала 0..1000 (MB2WS_SCALE_MAX; 1000=100%).
4610x01CDHolding03/06/10RWнетДавление 0Давление 0.1 мм рт. ст., 4000..8500; 0 = не задано. Режим 64: целое + пробел + «мм.рт.» («748 мм.рт.»), 5 с на страницу. Класс FxAux (см. 457).
4620x01CEHolding03/06/10RWнетГод 2000Год 2000..2199; 0 = не задан. На ленте режима 64 — две цифры («31.08.26»); незаданный год → «--». 31.12 → 01.01 наращивает год. Класс FxAux (см. 457).
4630x01CFHolding03/06/10RWнетЦвет глифов строки 1 (RGB565 RRRRRGGGGGGBBBBB)Цвет глифов строки 1 (RGB565 RRRRRGGGGGGBBBBB); 0 = поведение по умолчанию (канал переопределения FxAux / цвет режима). Режимы 62 и 64. Класс FxAux; любое u16 законно.
4640x01D0Holding03/06/10RWнетЦвет глифов строки 2 (RGB565)Цвет глифов строки 2 (RGB565); 0 = как строка 1. Двухстрочный текст 494=2 и режим 64. Класс FxAux.
4650x01D1Holding03/06/10RWнетФон полосы строки 1 (RGB565)Фон полосы строки 1 (RGB565); 0 = чёрный. Однострочный режим красит ВСЁ полотно этим фоном (464/466 игнорируются); двухстрочный — ряды 0..7. Класс FxAux.
4660x01D2Holding03/06/10RWнетФон полосы строки 2 (ряды 8Фон полосы строки 2 (ряды 8..15, RGB565); 0 = чёрный. Класс FxAux. Примечание 463–466: не блокируются lock, но СОХРАНЯЮТСЯ в EEPROM (с 1.0.2.2) — в отличие от погодного блока 457..462 класса FxAux, который остаётся волатильным.
4670x01D3Holding03/06/10RWнетЦвет температуры в режиме 64 (RGB565)Цвет температуры в режиме 64 (RGB565); 0 = янтарный по умолчанию (класс часов режима 63). Приоритет как у 463/464: сильнее FxAux. ВОЛАТИЛЬНЫЙ (класс погодного блока 457..462 — мастер, сеющий часы/температуру, задаёт и цвет; сознательно НЕ в rgbw_persist_ext_t: добавление поля сдвинуло бы DI-ext блок и потребовало bump магии конфига). Пример: красный = 0xF800.
4700x01D6Holding03/06/10Rнетb0 refresh_pending, b1 locked, b2 pool_dirty, b3 refresh_activeb0 refresh_pending, b1 locked, b2 pool_dirty, b3 refresh_active.
4710x01D7Holding03/06/10RнетПоследний код ошибки (0=OK)Последний код ошибки (0=OK).
4720x01D8Holding03/06/10RнетФактический RenderSource (0/1/2)Фактический RenderSource (0/1/2).
4730x01D9Holding03/06/10RнетЭффективное LedCountЭффективное LedCount.
4740x01DAHolding03/06/10RнетФактический LedTypeФактический LedType.
4750x01DBHolding03/06/10RнетФактический PixelFormatФактический PixelFormat.
4760x01DCHolding03/06/10RнетФактический ScaleФактический Scale.
4770x01DDHolding03/06/10RнетПоследняя выполненная cmd 430Последняя выполненная cmd 430.
4780x01DEHolding03/06/10RнетСчётчик тиков MB2WS (диагностика)Счётчик тиков MB2WS (диагностика).
4800x01E0Holding03/06/10RнетASCII «MB2WS» (по символу в регистре)Адреса 480–485. ASCII «MB2WS» (по символу в регистре).
4860x01E6Holding03/06/10RнетSN lo/hi (семейный get_fastmb_serialaddress)Адреса 486–487. SN lo/hi (семейный get_fastmb_serialaddress).
4880x01E8Holding03/06/10Rнет(MAJOR<<8)|MINOR приложения(MAJOR<<8)|MINOR приложения.
4890x01E9Holding03/06/10Rнет(PATCH<<8)|SUFFIX(PATCH<<8)|SUFFIX.
4900x01EAHolding03/06/10Rнет0x0400 (MB2WS_MAP_VERSION)0x0400 (MB2WS_MAP_VERSION).
4910x01EBHolding03/06/10Rнетstub (1)stub (1).
4920x01ECHolding03/06/10Rнет10241024.
4930x01EDHolding03/06/10Rнет400400.
4940x01EEHolding03/06/10RWнетЧисло строк текста режима 62, def 0 (перенесён с 456 до релиза)Число строк текста режима 62, def 0 (перенесён с 456 до релиза). Его текстовое окно — 516–579 (перенесено с 495–510 до релиза: старое окно пересекалось с семейными safe-AO 503–506, из-за чего длинный текст обрезался; см. 516–579). 0 или 1 = одна строка (режим 62: глифы 10×14; режим 64: цикл время/дата/t°+влажн./давление, значения 14 px, размерность 7 px); 2 = ДВЕ строки шрифтом 5×7 1× (режим 62 и 64): строка 1 в рядах 0..6, ряды 7..8 — зазор, строка 2 в рядах 9..15 (7+2+7 = 16). Текст — то же окно 516–579: символ «|» делит строку 1 и строку 2 (сам не рисуется); без «|» текст делится пополам (нечётная длина — лишний символ в строке 1). Из стилей анимации 455 в двухстрочном режиме пока работает только 16 (титры); остальные — только в однострочном. Цвета/фон строк — regs 463..466. Каждая строка шире полотна бежит справа налево независимо (своя длина цикла), та же временная прокрутка, что и одна строка. Иные значения → exception 3. Не блокируется lock; сохраняется в EEPROM (с 1.0.2.2).
5110x01FFHolding03/06/10RWнет= поле рег 417 (младший байт), ДВУНАПРАВЛЕННО (с 1= поле рег 417 (младший байт), ДВУНАПРАВЛЕННО (с 1.0.2.2). Ширина плитки 1..64; вне → exc 3. То же состояние, что 417: запись сюда меняет 417, и наоборот. Lock (410); СОХРАНЯЕТСЯ (как 417).
5120x0200Holding03/06/10RWнет= поле рег 417 (старший байт), ДВУНАПРАВЛЕННО (с 1= поле рег 417 (старший байт), ДВУНАПРАВЛЕННО (с 1.0.2.2). Высота плитки: 0 => 16 по умолчанию, иначе 8..32; вне → exc 3. Lock (410); сохр (как 417).
5130x0201Holding03/06/10RWнет= поле рег 418 биты 8-11, ДВУНАПРАВЛЕННО (с 1= поле рег 418 биты 8-11, ДВУНАПРАВЛЕННО (с 1.0.2.2). Явное число плиток: 0 = AUTO (из LedCount), 1..4; вне → exc 3. Lock; сохр (как 418).
5140x0202Holding03/06/10RWнет= поле рег 418 биты 4-6, ДВУНАПРАВЛЕННО (с 1= поле рег 418 биты 4-6, ДВУНАПРАВЛЕННО (с 1.0.2.2). Раскладка эффекта: 0 = SPAN, 1 = REPLICATE, 2 = MIRROR; вне → exc 3. Lock; сохр (как 418).
5150x0203Holding03/06/10RWнет= поле рег 418 биты 0-3, ДВУНАПРАВЛЕННО (с 1= поле рег 418 биты 0-3, ДВУНАПРАВЛЕННО (с 1.0.2.2). Разводка (serpentine/progressive, origin, mirror-X, swap-XY) 0..15; вне → exc 3. Lock (410); СОХРАНЯЕТСЯ (как 418). Примечание 511-515: то же состояние, что 417/418, по одному параметру на регистр — мастер управляет геометрией ЛИБО упакованными 417/418, ЛИБО этими отдельными холдингами, взаимозаменяемо; персист общий с 417/418.
5160x0204Holding03/06/10RWнетASCII-окно бегущей строки для FX 18 (MatrixText)Адреса 516–579. ASCII-окно бегущей строки для FX 18 (MatrixText): 64 регистра × 2 символа = до 128 символов. Перенесено с 495–510 до релиза (2026-08-20): старое окно пересекалось с семейными safe-AO 503–506, поэтому текст длиннее 8 символов терял символы 16.. (их перехватывал обработчик safe-AO). 516–579 — свободный смежный блок между зеркалами матрицы 511–515 и семейными safe-DO 600–603. При TextLines (reg 494) = 2 символ «|» делит окно на две строки (см. reg 494). High byte = первый (левый) символ пары, low byte = второй; заполнение нулями = конец строки. Можно писать любую часть окна (FC06 / FC16); вступает в силу со следующего кадра FX 18. Шрифт 5×7: цифры, латиница A–Z, ПОЛНАЯ прописная кириллица cp1251 А–Я (Ё → Е; строчные латиница и а–я приводятся к прописным), «-», «.», «:», «!», пробел, 0xB0 = «°»; прочие символы → пробел. Пиксельная поверхность: НЕ блокируется lock (reg 410), как pool/poke. Чтение возвращает текущее содержимое буфера.
11000x044CHolding03/06/10RWнетpixel RGreg (1100 + 2*i): RG: R = low byte, G = high byte (0..255).
11010x044DHolding03/06/10RWнетpixel BWreg (1100 + 2*i+1): BW: B = low byte; high byte = W (RGBW) или 0 (RGB).
655040xFFE0Input04Rнетstack HWMstack HWM
655050xFFE1Input04Rнетfree RAMfree RAM
655060xFFE2Input04Rнетused RAMused RAM
655070xFFE3Input04Rнетstack sizestack size
655080xFFE4Input04Rнетreset reasonreset reason
655090xFFE5Input04RнетFW update countFW update count
655100xFFE6Input04RнетFW update countFW update count
655110xFFE7Input04RнетEEPROM runtime (RTU/RGBW product hook)EEPROM runtime (RTU/RGBW product hook)
655120xFFE8Input04RнетPOST bitmaskPOST bitmask
655130xFFE9Input04Rнетstack watermarkstack watermark
655140xFFEAInput04RнетFast MB rate-drop countFast MB rate-drop count
655150xFFEBInput04Rнетread_inputs violationsread_inputs violations
655180xFFEEInput04RнетWS28xx debug word (ROWS28xx debug word (RO; b15 busy, b14..12 HAL SPI state,
655170xFFEDInput04Rнеткод ошибки модуля (mp02_error latch, ROкод ошибки модуля (mp02_error latch, RO; 0 = OK
10x0001Input04Rнет= ERROR/ADC,= ERROR/ADC,
655200xFFF0Input04RнетCh2AllowedModesАдреса 65520–65525. Ch2AllowedModes Маска доступных каналу 2 режимов: бит i слова w = режим (w*16 + i) из каталога reg 405 можно выбрать в reg 580. Интерфейс читает её и гасит недоступные пункты, вместо того чтобы зашивать текущий ответ прошивки. СЕЙЧАС разрешено ВСЁ: канал 2 владеет полным собственным блоком состояния движка, поэтому выбор канала 1 ничего у него не отнимает — слова 0..4 читаются 0xFFFF, слово 5 = 0x0003 (каталог кончается на id 81). Биты выше последнего id — нули. Регистр существует, чтобы будущий режим, чьё состояние не влезет в блок, стал изменением ПРОШИВКИ, а не изменением клиента.
655190xFFEFInput04RнетEEPROM health (общесемейная раскладка битов)EEPROM health (общесемейная раскладка битов)
654680xFFBCInput04RнетRX/TX trace (сброс holding 65487)Адреса 65468–65487. RX/TX trace (сброс holding 65487)
654880xFFD0Input04RнетUART/poll telemetryАдреса 65488–65503. UART/poll telemetry
10050x03EDHolding03/06/10WнетСерийный номер (2 regs)Серийный номер (2 regs): 1005=lo, 1006=hi. Политика — docs/contracts/bootloader-modbus.md, docs/contracts/eeprom-v2-layout.md. Broadcast игнорируется.

Условные обозначения

  • R чтение
  • RW чтение и запись
  • W запись
  • ⚡ событие Fast Modbus
  • EEPROM значение хранится в EEPROM
  • RAM значение хранится в RAM