Регистры Modbus — МР-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. Отдельная таблица на этой странице их не дублирует. Колонка, для которой в файле нет поля, показывает «—».
| Адрес (dec) | Адрес (hex) | Тип | Функции | Доступ | Формат | Ед. и масштаб | Значения и диапазон | По умолчанию | Хранение | ⚡ Событие Fast Modbus | С версии ПО | Канал | Название | Описание |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0x0000 | Input | 04 | R | нет | Тип модуля = 120 (RGBW_WS2812) | Тип модуля = 120 (RGBW_WS2812). | |||||||
| 18 | 0x0012 | Input | 04 | R | да | DI IN1 | Адреса 18–21. DI IN1..IN4 (0/1), зеркало discrete 18–21. | |||||||
| 37 | 0x0025 | Input | 04 | R | да | 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). | |||||||
| 105 | 0x0069 | Input | 04 | R | да | Uptime u32 сек (мл | Адреса 105–106. Uptime u32 сек (мл. / ст.). | |||||||
| 114 | 0x0072 | Input | 04 | R | нет | Наработка, сутки | Наработка, сутки. | |||||||
| 123 | 0x007B | Input | 04 | R | да | VDDA, 0 | VDDA, 0.01 В (328 = 3.28 В). | |||||||
| 124 | 0x007C | Input | 04 | R | да | Температура МК, 0 | Температура МК, 0.1 °C. | |||||||
| 131 | 0x0083 | Input | 04 | R | да | Температура платы OTP/NTC (у силовых), 0 | Температура платы OTP/NTC (у силовых), 0.1 °C. PA3 / ADC_IN3; 0 если неизвестен. | |||||||
| 132 | 0x0084 | Input | 04 | R | нет | Напряжение шины VLED 12–48 В, 0 | Напряжение шины VLED 12–48 В, 0.01 В (PA0 / ADC_IN0 + делитель; напр. 2400 = 24.00 В). | |||||||
| 200 | 0x00C8 | Input | 04 | R | нет | Модель ASCII «RGBW_WS2812» | Адреса 200–219. Модель ASCII «RGBW_WS2812». | |||||||
| 220 | 0x00DC | Input | 04 | R | нет | Счётчик короткого нажатия IN1 | Адреса 220–223. Счётчик короткого нажатия IN1..IN4. | |||||||
| 224 | 0x00E0 | Input | 04 | R | нет | Счётчик длинного нажатия IN1 | Адреса 224–227. Счётчик длинного нажатия IN1..IN4. | |||||||
| 228 | 0x00E4 | Input | 04 | R | нет | Счётчик двойного нажатия IN1 | Адреса 228–231. Счётчик двойного нажатия IN1..IN4. | |||||||
| 232 | 0x00E8 | Input | 04 | R | нет | Счётчик короткое+длинное IN1 | Адреса 232–235. Счётчик короткое+длинное IN1..IN4. | |||||||
| 236 | 0x00EC | Input | 04 | R | нет | Счётчик шагов энкодера 1 / 2 | Адреса 236–237. Счётчик шагов энкодера 1 / 2. (ранее 364–365 / 464–515 — сняты). | |||||||
| 270 | 0x010E | Input | 04 | R | нет | 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). | |||||||
| 290 | 0x0122 | Input | 04 | R | нет | Сигнатура 12 байт | Адреса 290–301. Сигнатура 12 байт: «LED» (с 1.0.2.2; ранее «RGBW_WS2812»). Модель 200–219 — по-прежнему «RGBW_WS2812». | |||||||
| 320 | 0x0140 | Input | 04 | R | нет | Версия прошивки + packed u32 | Адреса 320–325. Версия прошивки + packed u32. | |||||||
| 330 | 0x014A | Input | 04 | R | нет | Версия загрузчика ASCII | Адреса 330–337. Версия загрузчика ASCII. | |||||||
| 340 | 0x0154 | Holding | 03/06/10 | RW | да | Пороги событий Fast Modbus (семейные | Адреса 340–343. Пороги событий Fast Modbus (семейные; *holding). | |||||||
| 65468 | 0xFFBC | Input | 04 | R | нет | Семейная диагностика (см | Адреса 65468–65519. Семейная диагностика (см. «Состояние МК»). | |||||||
| 0 | 0x0000 | Holding | 03/06/10 | R | нет | Тип модуля = 120 (зеркало input 0) | Тип модуля = 120 (зеркало input 0). | |||||||
| 1 | 0x0001 | Holding | 03/06/10 | RW | нет | AO-mirror R/G/B/W | Адреса 1–4. AO-mirror R/G/B/W: запись 0 = выкл. канала; >0 = enable + яркость permille (clamp 1000). Чтение: 0 если выкл., иначе target permille. | |||||||
| 17 | 0x0011 | Holding | 03/06/10 | R | нет | Упакованные coils DO 1 | Упакованные coils DO 1..4 (биты 0..3). Запись — illegal. | |||||||
| 18 | 0x0012 | Holding | 03/06/10 | R | нет | DI IN1 | Адреса 18–21. DI IN1..IN4 (0/1), зеркало discrete/input. | |||||||
| 33 | 0x0021 | Holding | 03/06/10 | RW | нет | Яркость 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. | |||||||
| 37 | 0x0025 | Holding | 03/06/10 | R | нет | OCP-флаг R/G/B/W 0/1 (зеркало input 37–40) | Адреса 37–40. OCP-флаг R/G/B/W 0/1 (зеркало input 37–40). | |||||||
| 49 | 0x0031 | Holding | 03/06/10 | RW | нет | Режим силовых выходов (последовательные 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. | |||||||
| 50 | 0x0032 | Holding | 03/06/10 | RW | нет | Fade, мс (также sync fade_up/dn) | Fade, мс (также sync fade_up/dn). | |||||||
| 51 | 0x0033 | Holding | 03/06/10 | RW | нет | Частота ШИМ, Гц (100…24000, def 3000) | Частота ШИМ, Гц (100…24000, def 3000). | |||||||
| 52 | 0x0034 | Holding | 03/06/10 | RW | нет | Нормализация мощности CCT (0/1) | Нормализация мощности CCT (0/1). | |||||||
| 53 | 0x0035 | Holding | 03/06/10 | RW | нет | DI в safe | DI в safe: 0=разрешить, 1=блок в safe, 2=только в safe. | |||||||
| 54 | 0x0036 | Holding | 03/06/10 | RW | нет | Энкодер ниже min | Энкодер ниже min: 0=выкл канал, 1=держать min. | |||||||
| 55 | 0x0037 | Holding | 03/06/10 | RW | нет | Power-on ch R | Адреса 55–58. Power-on ch R..W: 0=off, 1=last, 2=on, 3=on+level. | |||||||
| 59 | 0x003B | Holding | 03/06/10 | RW | нет | Power-on level, permille | Адреса 59–62. Power-on level, permille. | |||||||
| 63 | 0x003F | Holding | 03/06/10 | RW | нет | Min яркость канала, permille (def 10) | Адреса 63–66. Min яркость канала, permille (def 10). | |||||||
| 67 | 0x0043 | Holding | 03/06/10 | RW | нет | Max яркость канала, permille (def 1000) | Адреса 67–70. Max яркость канала, permille (def 1000). | |||||||
| 71 | 0x0047 | Holding | 03/06/10 | RW | нет | HSV Hue 0…359 (режим RGB+W) | HSV Hue 0…359 (режим RGB+W). | |||||||
| 72 | 0x0048 | Holding | 03/06/10 | RW | нет | HSV Sat 0…1000 | HSV Sat 0…1000. | |||||||
| 73 | 0x0049 | Holding | 03/06/10 | RW | нет | HSV Val 0…1000 | HSV Val 0…1000. | |||||||
| 74 | 0x004A | Holding | 03/06/10 | RW | нет | CCT1 temp / brightness 0…1000 | Адреса 74–75. CCT1 temp / brightness 0…1000. | |||||||
| 76 | 0x004C | Holding | 03/06/10 | RW | нет | CCT2 temp / brightness (2×CCT → = CCT1) | Адреса 76–77. CCT2 temp / brightness (2×CCT → = CCT1). | |||||||
| 78 | 0x004E | Holding | 03/06/10 | RW | нет | Fade up / down, мс | Адреса 78–79. Fade up / down, мс. | |||||||
| 80 | 0x0050 | Holding | 03/06/10 | RW | нет | 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. | |||||||
| 110 | 0x006E | Holding | 03/06/10 | RW | нет | Baud (код | Baud (код; 1152 = 115200). Общий для обоих портов. | |||||||
| 111 | 0x006F | Holding | 03/06/10 | RW | нет | Чётность | Чётность: 0=нет, 1=нечёт, 2=чёт. | |||||||
| 112 | 0x0070 | Holding | 03/06/10 | RW | нет | Стоп-биты | Стоп-биты: 1 или 2. | |||||||
| 120 | 0x0078 | Holding | 03/06/10 | W | нет | Перезагрузка МК (≠0) | Перезагрузка МК (≠0). | |||||||
| 122 | 0x007A | Holding | 03/06/10 | RW | нет | Режим шины | Режим шины: 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 | |||||||
| 125 | 0x007D | Holding | 03/06/10 | RW | нет | Маска системных групп Fast Modbus | Маска системных групп Fast Modbus. | |||||||
| 126 | 0x007E | Holding | 03/06/10 | W | нет | Команда «все системные группы» on/off | Команда «все системные группы» on/off. | |||||||
| 128 | 0x0080 | Holding | 03/06/10 | RW | нет | Modbus slave address, 1 | Modbus slave address, 1..246 (оба порта). Заводское значение 13 (с 1.0.2.2; ранее 15). | |||||||
| 129 | 0x0081 | Holding | 03/06/10 | W | нет | ≠0 → reboot в загрузчик | ≠0 → reboot в загрузчик. | |||||||
| 131 | 0x0083 | Holding | 03/06/10 | R | нет | Температура платы NTC (зеркало input 131) | Температура платы NTC (зеркало input 131). | |||||||
| 132 | 0x0084 | Holding | 03/06/10 | R | нет | VLED шина 0 | VLED шина 0.01 В (зеркало input 132). | |||||||
| 133 | 0x0085 | Holding | 03/06/10 | RW | нет | Время «бегущей строки» (×10 мс в read path) | Время «бегущей строки» (×10 мс в read path). | |||||||
| 134 | 0x0086 | Holding | 03/06/10 | RW | нет | Таймаут неактивности Modbus, сек (0=выкл | Таймаут неактивности Modbus, сек (0=выкл.). | |||||||
| 135 | 0x0087 | Holding | 03/06/10 | RW | нет | Режим входа IN1 | Адреса 135–138. Режим входа IN1..IN4: 0 = кнопка (short/long/double/short+long); 1 = выключатель с фиксацией. | |||||||
| 139 | 0x008B | Holding | 03/06/10 | RW | нет | Действие | Адреса 139–142. Действие: короткое / положение «Вкл» (switch). | |||||||
| 143 | 0x008F | Holding | 03/06/10 | RW | нет | Действие | Адреса 143–146. Действие: длинное / положение «Выкл» (switch). | |||||||
| 147 | 0x0093 | Holding | 03/06/10 | RW | нет | Действие | Адреса 147–150. Действие: двойное нажатие. | |||||||
| 151 | 0x0097 | Holding | 03/06/10 | RW | нет | Действие | Адреса 151–154. Действие: короткое + длинное. | |||||||
| 155 | 0x009B | Holding | 03/06/10 | RW | нет | Порог длинного нажатия, мс (500…5000, def 1000) | Адреса 155–158. Порог длинного нажатия, мс (500…5000, def 1000). | |||||||
| 159 | 0x009F | Holding | 03/06/10 | RW | нет | Окно второго нажатия, мс (0…2000, def 300 | Адреса 159–162. Окно второго нажатия, мс (0…2000, def 300; 0 = double/shortlong выкл.). | |||||||
| 163 | 0x00A3 | Holding | 03/06/10 | RW | нет | Debounce, мс (10…2000, def 50 | Адреса 163–166. Debounce, мс (10…2000, def 50; энкодер → 10). | |||||||
| 167 | 0x00A7 | Holding | 03/06/10 | RW | нет | Скорость dim при удержании, мс/шаг (5…500, def 20) | Адреса 167–170. Скорость dim при удержании, мс/шаг (5…500, def 20). | |||||||
| 171 | 0x00AB | Holding | 03/06/10 | RW | нет | Шаг short/inc-dec, permille 1…1000 (def 10) | Адреса 171–174. Шаг short/inc-dec, permille 1…1000 (def 10). | |||||||
| 175 | 0x00AF | Holding | 03/06/10 | RW | нет | Шаг double, permille 1…1000 (def 10) | Адреса 175–178. Шаг double, permille 1…1000 (def 10). | |||||||
| 179 | 0x00B3 | Holding | 03/06/10 | RW | нет | Энкодер 1/2 тип | Адреса 179–180. Энкодер 1/2 тип: 0=выкл, 1=AB (пары IN1/IN2 и IN3/IN4). | |||||||
| 181 | 0x00B5 | Holding | 03/06/10 | RW | нет | Цель энкодера | Адреса 181–182. Цель энкодера: 0..3 = R/G/B/W, 4 = RGB, 5 = все, 6=Hue, 7=Sat, 8=Val, 9..12=CCT1/2 T/bri. | |||||||
| 183 | 0x00B7 | Holding | 03/06/10 | RW | нет | Шаг энкодера, permille (def 10) | Адреса 183–184. Шаг энкодера, permille (def 10). | |||||||
| 185 | 0x00B9 | Holding | 03/06/10 | RW | нет | Импульсов AB на логический шаг (def 4) | Адреса 185–186. Импульсов AB на логический шаг (def 4). | |||||||
| 503 | 0x01F7 | Holding | 03/06/10 | RW | нет | 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) — после перезагрузки уровни восстанавливаются. | |||||||
| 600 | 0x0258 | Holding | 03/06/10 | RW | нет | 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) — после перезагрузки флаги восстанавливаются. | |||||||
| 1001 | 0x03E9 | Holding | 03/06/10 | W | нет | Factory reset EEPROM (отложенно, main loop) | Factory reset EEPROM (отложенно, main loop). RGBW: оба RS-485 — слейвы, 115200 8N1, адрес 13 (holding 128 / 110–112); WorkPort Spy 640 = 0. | |||||||
| 1005 | 0x03ED | Holding | 03/06/10 | W | нет | Серийный номер FC16 (lo/hi) | Адреса 1005–1006. Серийный номер FC16 (lo/hi). | |||||||
| 4000 | 0x0FA0 | Holding | 03/06/10 | RW | нет | 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. | |||||||
| 4016 | 0x0FB0 | Holding | 03/06/10 | R | нет | Status | Status: 0 IDLE, 1 ERASING, 2 PROGRAMMING, 3 VERIFY, 4 DONE, 5 ERROR. (на READ перекрывает info[8]; WRITE info — OK) | |||||||
| 4017 | 0x0FB1 | Holding | 03/06/10 | R | нет | Progress bytes lo | Progress bytes lo. | |||||||
| 4018 | 0x0FB2 | Holding | 03/06/10 | R | нет | Progress bytes hi | Progress bytes hi. | |||||||
| 4019 | 0x0FB3 | Holding | 03/06/10 | R | нет | Last error (0=none | Last error (0=none; см. EXFX_ERR_*). | |||||||
| 4128 | 0x1020 | Holding | 03/06/10 | W | нет | Commit | Commit: 1=verify CRC→DONE/ERROR; 2=abort. | |||||||
| 1 | 0x0001 | Coil | 01/05/0F | RW | нет | 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. | |||||||
| 5 | 0x0005 | Coil | 01/05/0F | RW | нет | Coil 5–6 | Адреса 5–6. группы: 5 — RGB (R+G+B; W выкл. при включении группы); 6 — все каналы R+G+B+W. | |||||||
| 7 | 0x0007 | Coil | 01/05/0F | RW | нет | Coil 7–17 | Адреса 7–17. не используются (чтение 0; запись — illegal или no-op). | |||||||
| 18 | 0x0012 | Discrete | 02 | R | нет | Discrete 18–21 | Адреса 18–21. сухие входы IN1..IN4 (active low, debounce). 1 = замкнут на GND, 0 = разомкнут. Управляют LED локально через svc_rgbw_di_ctrl (holding 135–186). | |||||||
| 400 | 0x0190 | Holding | 03/06/10 | RW | нет | LedCount / LedCount0 | Пиксели strip0: 1..1024 (RGB) или 1..400 (RGBW). | |||||||
| 401 | 0x0191 | Holding | 03/06/10 | RW | нет | Тип светодиода / протокол (см | Тип светодиода / протокол (см. таблицу LedType). | |||||||
| 402 | 0x0192 | Holding | 03/06/10 | RW | нет | 0 = pixel pool (reg 1100+) | 0 = pixel pool (reg 1100+); 1 = FX engine (params в reg 405–407); 2 = сценарий из Flash (W25Q). | |||||||
| 403 | 0x0193 | Holding | 03/06/10 | RW | нет | 0 = RGB (3 байта/px), 1 = RGBW (4 байта/px) | 0 = RGB (3 байта/px), 1 = RGBW (4 байта/px). | |||||||
| 404 | 0x0194 | Holding | 03/06/10 | RW | нет | 0 = только по cmd REFRESH | 0 = только по cmd REFRESH; 1 = auto после pool write. | |||||||
| 405 | 0x0195 | Holding | 03/06/10 | RW | нет | Встроенный 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). | |||||||
| 406 | 0x0196 | Holding | 03/06/10 | RW | нет | 0 | 0..255 (выше = быстрее). | |||||||
| 407 | 0x0197 | Holding | 03/06/10 | RW | нет | Яркость / param FX 0 | Яркость / param FX 0..255 (product → svc_fx_engine). | |||||||
| 408 | 0x0198 | Holding | 03/06/10 | RW | нет | Режим при включении (product) | Режим при включении (product). | |||||||
| 409 | 0x0199 | Holding | 03/06/10 | RW | нет | bit0 = LOOP для Flash playback | bit0 = LOOP для Flash playback; прочие — product. | |||||||
| 410 | 0x019A | Holding | 03/06/10 | RW | нет | Read | Read: 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 — всегда. | |||||||
| 411 | 0x019B | Holding | 03/06/10 | RW | нет | Гамма / curve (product) | Гамма / curve (product). | |||||||
| 412 | 0x019C | Holding | 03/06/10 | RW | нет | Порядок байт на линии (product) | Порядок байт на линии (product). | |||||||
| 413 | 0x019D | Holding | 03/06/10 | RW | нет | 0 = SINGLE_WS (DI0=PB5 SPI DMA | 0 = 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. | |||||||
| 414 | 0x019E | Holding | 03/06/10 | RW | нет | Пиксели 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 игнорируется. | |||||||
| 415 | 0x019F | Holding | 03/06/10 | RW | нет | Слот W25Q EXFX 0 | Слот W25Q EXFX 0..31 (play / LOAD_FLASH). | |||||||
| 416 | 0x01A0 | Holding | 03/06/10 | RW | нет | 0=stop, 1=play, 2=pause (Flash playback) | 0=stop, 1=play, 2=pause (Flash playback). | |||||||
| 417 | 0x01A1 | Holding | 03/06/10 | RW | нет | Геометрия одной матрицы, УПАКОВАНО (с 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; см. примечание ниже). | |||||||
| 418 | 0x01A2 | Holding | 03/06/10 | RW | нет | Разводка матрицы (с 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 переживают перезагрузку. | |||||||
| 419 | 0x01A3 | Holding | 03/06/10 | RW | нет | Режим второго выхода (канал 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; см. примечание ниже). | |||||||
| 580 | 0x0244 | Holding | 03/06/10 | RW | нет | Эффект канала 2, тот же каталог 0 | Эффект канала 2, тот же каталог 0..81, что и reg 405 (и те же Gyver-алиасы 128+). def 0. | |||||||
| 581 | 0x0245 | Holding | 03/06/10 | RW | нет | 0 | 0..255, как 406. def 128. | |||||||
| 582 | 0x0246 | Holding | 03/06/10 | RW | нет | 0 | 0..255 (яркость/параметр), как 407. def 128. | |||||||
| 583 | 0x0247 | Holding | 03/06/10 | RW | нет | 16-битное поле варианта/цвета, как 455 | 16-битное поле варианта/цвета, как 455. def 0. | |||||||
| 584 | 0x0248 | Holding | 03/06/10 | RW | нет | 0 | 0..255, как 456. def 128. | |||||||
| 585 | 0x0249 | Holding | 03/06/10 | RW | нет | 0 = срез пула (мастер пишет пиксели сам), 1 = FX-движок канала 2 | 0 = срез пула (мастер пишет пиксели сам), 1 = FX-движок канала 2. def 1. Значение 2 (Flash) НЕ поддерживается → exception 3: проигрыватель сценариев из Flash один на всё полотно, второго экземпляра нет. | |||||||
| 586 | 0x024A | Holding | 03/06/10 | RW | нет | Геометрия плитки канала 2, упаковка как у 417 (младший байт ширина 1 | Геометрия плитки канала 2, упаковка как у 417 (младший байт ширина 1..64, старший высота 0=>16, иначе 8..32). def 0x0010 (16x16). | |||||||
| 587 | 0x024B | Holding | 03/06/10 | RW | нет | Раскладка канала 2, упаковка как у 418 (биты 0-3 разводка, 4-6 TileMode) | Раскладка канала 2, упаковка как у 418 (биты 0-3 разводка, 4-6 TileMode). def 0. | |||||||
| 640 | 0x0280 | Holding | 03/06/10 | RW | нет | 0 = выкл (оба порта слейвы, как раньше) | 0 = выкл (оба порта слейвы, как раньше); 1 = Port A (USART2, торцевая); 2 = Port B (USART1, внешний разъём). Выбранный порт — Spy или Master; другой остаётся нашим слейвом. Свои baud/parity/stop (642/643); Fast MB на WorkPort выключен. | |||||||
| 641 | 0x0281 | Holding | 03/06/10 | RW | нет | мл | мл. байт: 0 off / 1 Spy / 2 Master. bit8 = tap-on-slave: матчер на CRC-OK кадрах слейв-порта (в т.ч. чужой UID), без swallow poll. Цель UID ≠ наш адрес 128. Master+WorkPort=0 отвергается. | |||||||
| 642 | 0x0282 | Holding | 03/06/10 | RW | нет | Код скорости WorkPort, как holding 110 (96 = 9600) | Код скорости WorkPort, как holding 110 (96 = 9600). Игнор, если только tap-on-slave. | |||||||
| 643 | 0x0283 | Holding | 03/06/10 | RW | нет | мл | мл. байт parity как holding 111 (0=нет, 1=нечёт, 2=чёт); ст. байт stop 1/2. | |||||||
| 644 | 0x0284 | Holding | 03/06/10 | RW | нет | Период опроса Master, мс | Период опроса Master, мс. def 1000. | |||||||
| 645 | 0x0285 | Holding | 03/06/10 | RW | нет | Таймаут ответа Master, мс | Таймаут ответа Master, мс. def 1000. | |||||||
| 646 | 0x0286 | Holding | 03/06/10 | RW | нет | Нет свежих данных → на матрице «--» | Нет свежих данных → на матрице «--». def 10000. | |||||||
| 647 | 0x0287 | Holding | 03/06/10 | R | нет | мл | мл. байт last error (0 ok, 1 timeout, 2 cfg, 3 tx); биты 8..11 stale слотов 0..3; bit12 in-flight. | |||||||
| 420 | 0x01A4 | Holding | 03/06/10 | R | нет | Блок «занято» A (bitmask операций | Адреса 420–427. Блок «занято» A (bitmask операций; 0 = idle). | |||||||
| 428 | 0x01AC | Holding | 03/06/10 | R | нет | 0 | Адреса 428–429. 0. | |||||||
| 434 | 0x01B2 | Holding | 03/06/10 | RW | нет | 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, две трактовки по источнику. | |||||||
| 430 | 0x01AE | Holding | 03/06/10 | W | нет | 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). | |||||||
| 431 | 0x01AF | Holding | 03/06/10 | R | нет | 0 idle, 1 accepted, 2 busy, 3 done, 4 error | 0 idle, 1 accepted, 2 busy, 3 done, 4 error. BUSY также во время Flash show при ошибке слота. | |||||||
| 450 | 0x01C2 | Holding | 03/06/10 | RW | нет | Индекс пикселя для одиночной записи (0 | Индекс пикселя для одиночной записи (0..LedCount-1). | |||||||
| 451 | 0x01C3 | Holding | 03/06/10 | RW | нет | R (low), G (high) для LedIndex | R (low), G (high) для LedIndex. | |||||||
| 452 | 0x01C4 | Holding | 03/06/10 | RW | нет | B (low), W (high) | B (low), W (high); W игнорируется в RGB. | |||||||
| 453 | 0x01C5 | Holding | 03/06/10 | RW | нет | Мягкие часы суток, часы 0 | Мягкие часы суток, часы 0..23 (с 1.0.2.2). | |||||||
| 454 | 0x01C6 | Holding | 03/06/10 | RW | нет | Мягкие часы суток, минуты 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: после перезагрузки время не задано, мастер сеет заново. | |||||||
| 455 | 0x01C7 | Holding | 03/06/10 | RW | нет | Параметр режима 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). | |||||||
| 456 | 0x01C8 | Holding | 03/06/10 | RW | нет | Плотность/концентрация элементов и цветов 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). | |||||||
| 457 | 0x01C9 | Holding | 03/06/10 | RW | нет | Дата для режима 64 | Дата для режима 64: (день << 8) | месяц; день 1..31, месяц 1..12; 0 = не задана («--.--»). Полночь мягких часов 453/454 двигает дату по фиксированной таблице месяцев (февраль = 28 — БЕЗ учёта високосных лет, осознанное ограничение). Класс FxAux: RW, не блокируется lock, НЕ сохраняется в EEPROM; вне диапазона → exception 3. В режиме прослушки 696..709 (любой UID ≠ 0) регистр 457 на ленту не идёт. | |||||||
| 458 | 0x01CA | Holding | 03/06/10 | RW | нет | Температура int16, 0 | Температура int16, 0.1 °C со знаком, -999..999; 0x8000 = не задана (не рисуется). Класс FxAux (см. 457). | |||||||
| 459 | 0x01CB | Holding | 03/06/10 | RW | нет | Влажность 0 | Влажность 0.1 %RH, 0..1000; 0xFFFF = не задана. Режим 64: целое % с пробелом («45 %»). Однострочный цикл (494=0/1) — отдельная страница; двухстрочный (494=2) — см. 64. 0 не рисуется. Класс FxAux (см. 457). | |||||||
| 460 | 0x01CC | Holding | 03/06/10 | RW | нет | Глобальная шкала 0 | Глобальная шкала 0..1000 (MB2WS_SCALE_MAX; 1000=100%). | |||||||
| 461 | 0x01CD | Holding | 03/06/10 | RW | нет | Давление 0 | Давление 0.1 мм рт. ст., 4000..8500; 0 = не задано. Режим 64: целое + пробел + «мм.рт.» («748 мм.рт.»), 5 с на страницу. Класс FxAux (см. 457). | |||||||
| 462 | 0x01CE | Holding | 03/06/10 | RW | нет | Год 2000 | Год 2000..2199; 0 = не задан. На ленте режима 64 — две цифры («31.08.26»); незаданный год → «--». 31.12 → 01.01 наращивает год. Класс FxAux (см. 457). | |||||||
| 463 | 0x01CF | Holding | 03/06/10 | RW | нет | Цвет глифов строки 1 (RGB565 RRRRRGGGGGGBBBBB) | Цвет глифов строки 1 (RGB565 RRRRRGGGGGGBBBBB); 0 = поведение по умолчанию (канал переопределения FxAux / цвет режима). Режимы 62 и 64. Класс FxAux; любое u16 законно. | |||||||
| 464 | 0x01D0 | Holding | 03/06/10 | RW | нет | Цвет глифов строки 2 (RGB565) | Цвет глифов строки 2 (RGB565); 0 = как строка 1. Двухстрочный текст 494=2 и режим 64. Класс FxAux. | |||||||
| 465 | 0x01D1 | Holding | 03/06/10 | RW | нет | Фон полосы строки 1 (RGB565) | Фон полосы строки 1 (RGB565); 0 = чёрный. Однострочный режим красит ВСЁ полотно этим фоном (464/466 игнорируются); двухстрочный — ряды 0..7. Класс FxAux. | |||||||
| 466 | 0x01D2 | Holding | 03/06/10 | RW | нет | Фон полосы строки 2 (ряды 8 | Фон полосы строки 2 (ряды 8..15, RGB565); 0 = чёрный. Класс FxAux. Примечание 463–466: не блокируются lock, но СОХРАНЯЮТСЯ в EEPROM (с 1.0.2.2) — в отличие от погодного блока 457..462 класса FxAux, который остаётся волатильным. | |||||||
| 467 | 0x01D3 | Holding | 03/06/10 | RW | нет | Цвет температуры в режиме 64 (RGB565) | Цвет температуры в режиме 64 (RGB565); 0 = янтарный по умолчанию (класс часов режима 63). Приоритет как у 463/464: сильнее FxAux. ВОЛАТИЛЬНЫЙ (класс погодного блока 457..462 — мастер, сеющий часы/температуру, задаёт и цвет; сознательно НЕ в rgbw_persist_ext_t: добавление поля сдвинуло бы DI-ext блок и потребовало bump магии конфига). Пример: красный = 0xF800. | |||||||
| 470 | 0x01D6 | Holding | 03/06/10 | R | нет | b0 refresh_pending, b1 locked, b2 pool_dirty, b3 refresh_active | b0 refresh_pending, b1 locked, b2 pool_dirty, b3 refresh_active. | |||||||
| 471 | 0x01D7 | Holding | 03/06/10 | R | нет | Последний код ошибки (0=OK) | Последний код ошибки (0=OK). | |||||||
| 472 | 0x01D8 | Holding | 03/06/10 | R | нет | Фактический RenderSource (0/1/2) | Фактический RenderSource (0/1/2). | |||||||
| 473 | 0x01D9 | Holding | 03/06/10 | R | нет | Эффективное LedCount | Эффективное LedCount. | |||||||
| 474 | 0x01DA | Holding | 03/06/10 | R | нет | Фактический LedType | Фактический LedType. | |||||||
| 475 | 0x01DB | Holding | 03/06/10 | R | нет | Фактический PixelFormat | Фактический PixelFormat. | |||||||
| 476 | 0x01DC | Holding | 03/06/10 | R | нет | Фактический Scale | Фактический Scale. | |||||||
| 477 | 0x01DD | Holding | 03/06/10 | R | нет | Последняя выполненная cmd 430 | Последняя выполненная cmd 430. | |||||||
| 478 | 0x01DE | Holding | 03/06/10 | R | нет | Счётчик тиков MB2WS (диагностика) | Счётчик тиков MB2WS (диагностика). | |||||||
| 480 | 0x01E0 | Holding | 03/06/10 | R | нет | ASCII «MB2WS» (по символу в регистре) | Адреса 480–485. ASCII «MB2WS» (по символу в регистре). | |||||||
| 486 | 0x01E6 | Holding | 03/06/10 | R | нет | SN lo/hi (семейный get_fastmb_serialaddress) | Адреса 486–487. SN lo/hi (семейный get_fastmb_serialaddress). | |||||||
| 488 | 0x01E8 | Holding | 03/06/10 | R | нет | (MAJOR<<8)|MINOR приложения | (MAJOR<<8)|MINOR приложения. | |||||||
| 489 | 0x01E9 | Holding | 03/06/10 | R | нет | (PATCH<<8)|SUFFIX | (PATCH<<8)|SUFFIX. | |||||||
| 490 | 0x01EA | Holding | 03/06/10 | R | нет | 0x0400 (MB2WS_MAP_VERSION) | 0x0400 (MB2WS_MAP_VERSION). | |||||||
| 491 | 0x01EB | Holding | 03/06/10 | R | нет | stub (1) | stub (1). | |||||||
| 492 | 0x01EC | Holding | 03/06/10 | R | нет | 1024 | 1024. | |||||||
| 493 | 0x01ED | Holding | 03/06/10 | R | нет | 400 | 400. | |||||||
| 494 | 0x01EE | Holding | 03/06/10 | RW | нет | Число строк текста режима 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). | |||||||
| 511 | 0x01FF | Holding | 03/06/10 | RW | нет | = поле рег 417 (младший байт), ДВУНАПРАВЛЕННО (с 1 | = поле рег 417 (младший байт), ДВУНАПРАВЛЕННО (с 1.0.2.2). Ширина плитки 1..64; вне → exc 3. То же состояние, что 417: запись сюда меняет 417, и наоборот. Lock (410); СОХРАНЯЕТСЯ (как 417). | |||||||
| 512 | 0x0200 | Holding | 03/06/10 | RW | нет | = поле рег 417 (старший байт), ДВУНАПРАВЛЕННО (с 1 | = поле рег 417 (старший байт), ДВУНАПРАВЛЕННО (с 1.0.2.2). Высота плитки: 0 => 16 по умолчанию, иначе 8..32; вне → exc 3. Lock (410); сохр (как 417). | |||||||
| 513 | 0x0201 | Holding | 03/06/10 | RW | нет | = поле рег 418 биты 8-11, ДВУНАПРАВЛЕННО (с 1 | = поле рег 418 биты 8-11, ДВУНАПРАВЛЕННО (с 1.0.2.2). Явное число плиток: 0 = AUTO (из LedCount), 1..4; вне → exc 3. Lock; сохр (как 418). | |||||||
| 514 | 0x0202 | Holding | 03/06/10 | RW | нет | = поле рег 418 биты 4-6, ДВУНАПРАВЛЕННО (с 1 | = поле рег 418 биты 4-6, ДВУНАПРАВЛЕННО (с 1.0.2.2). Раскладка эффекта: 0 = SPAN, 1 = REPLICATE, 2 = MIRROR; вне → exc 3. Lock; сохр (как 418). | |||||||
| 515 | 0x0203 | Holding | 03/06/10 | RW | нет | = поле рег 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. | |||||||
| 516 | 0x0204 | Holding | 03/06/10 | RW | нет | 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. Чтение возвращает текущее содержимое буфера. | |||||||
| 1100 | 0x044C | Holding | 03/06/10 | RW | нет | pixel RG | reg (1100 + 2*i): RG: R = low byte, G = high byte (0..255). | |||||||
| 1101 | 0x044D | Holding | 03/06/10 | RW | нет | pixel BW | reg (1100 + 2*i+1): BW: B = low byte; high byte = W (RGBW) или 0 (RGB). | |||||||
| 65504 | 0xFFE0 | Input | 04 | R | нет | stack HWM | stack HWM | |||||||
| 65505 | 0xFFE1 | Input | 04 | R | нет | free RAM | free RAM | |||||||
| 65506 | 0xFFE2 | Input | 04 | R | нет | used RAM | used RAM | |||||||
| 65507 | 0xFFE3 | Input | 04 | R | нет | stack size | stack size | |||||||
| 65508 | 0xFFE4 | Input | 04 | R | нет | reset reason | reset reason | |||||||
| 65509 | 0xFFE5 | Input | 04 | R | нет | FW update count | FW update count | |||||||
| 65510 | 0xFFE6 | Input | 04 | R | нет | FW update count | FW update count | |||||||
| 65511 | 0xFFE7 | Input | 04 | R | нет | EEPROM runtime (RTU/RGBW product hook) | EEPROM runtime (RTU/RGBW product hook) | |||||||
| 65512 | 0xFFE8 | Input | 04 | R | нет | POST bitmask | POST bitmask | |||||||
| 65513 | 0xFFE9 | Input | 04 | R | нет | stack watermark | stack watermark | |||||||
| 65514 | 0xFFEA | Input | 04 | R | нет | Fast MB rate-drop count | Fast MB rate-drop count | |||||||
| 65515 | 0xFFEB | Input | 04 | R | нет | read_inputs violations | read_inputs violations | |||||||
| 65518 | 0xFFEE | Input | 04 | R | нет | WS28xx debug word (RO | WS28xx debug word (RO; b15 busy, b14..12 HAL SPI state, | |||||||
| 65517 | 0xFFED | Input | 04 | R | нет | код ошибки модуля (mp02_error latch, RO | код ошибки модуля (mp02_error latch, RO; 0 = OK | |||||||
| 1 | 0x0001 | Input | 04 | R | нет | = ERROR/ADC, | = ERROR/ADC, | |||||||
| 65520 | 0xFFF0 | Input | 04 | R | нет | Ch2AllowedModes | Адреса 65520–65525. Ch2AllowedModes Маска доступных каналу 2 режимов: бит i слова w = режим (w*16 + i) из каталога reg 405 можно выбрать в reg 580. Интерфейс читает её и гасит недоступные пункты, вместо того чтобы зашивать текущий ответ прошивки. СЕЙЧАС разрешено ВСЁ: канал 2 владеет полным собственным блоком состояния движка, поэтому выбор канала 1 ничего у него не отнимает — слова 0..4 читаются 0xFFFF, слово 5 = 0x0003 (каталог кончается на id 81). Биты выше последнего id — нули. Регистр существует, чтобы будущий режим, чьё состояние не влезет в блок, стал изменением ПРОШИВКИ, а не изменением клиента. | |||||||
| 65519 | 0xFFEF | Input | 04 | R | нет | EEPROM health (общесемейная раскладка битов) | EEPROM health (общесемейная раскладка битов) | |||||||
| 65468 | 0xFFBC | Input | 04 | R | нет | RX/TX trace (сброс holding 65487) | Адреса 65468–65487. RX/TX trace (сброс holding 65487) | |||||||
| 65488 | 0xFFD0 | Input | 04 | R | нет | UART/poll telemetry | Адреса 65488–65503. UART/poll telemetry | |||||||
| 1005 | 0x03ED | Holding | 03/06/10 | W | нет | Серийный номер (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