#1 Re: Проекти » Модуль розширення портів + Linux » 2026-11-03 03:46:00

smg123 пише:

перетворювач живлення B0505S

Тобто є якийсь 5-вольтовий БЖ. З нього 5 вольт ідуть на плату ESP32 на LDO регулятор. З регулятора 3.3 В ідуть на UART VCC плати з оптопарами.
З цього ж БЖ 5 вольт ідуть на DCDC VCC плати з оптопарами і живлять B0505S, так?

У B0505S за даташитом пульсації до 100 мВ, а частота перетворення всього 100 кГц. Невідомо, наскільки добре воно фільтрується.
Для чистоти експерименту я б заживив ізольовану сторону від окремого БЖ з лінійним регулятором.
Взагалі для діагностики в таких експериментах осцилограф дуже знадобився б.

#2 Re: Апаратні питання » Обробка переривань, esp32c3, і всяке таке.. » 2026-11-02 13:45:35

jokeR пише:

Чорний ящик sad Плата розміром з ноутбук, щедро заляпана компаундом.

Можна порівняти напругу в ненавантаженому стані та в навантаженому на кілоомний резистор. А також, про всяк випадок, на цей же резистор, тільки підтягнутий до 5В. Це якщо там раптом відкитий колектор, але транзистор PNP з підтяжкою до землі.   

jokeR пише:

в esp32c3 їх немає

Хм, як же так? Про що думали розробники? hmm

Тоді треба поставити. На компараторі, або мікросхему логіки з ТШ на вході, або з двох транзисторів зліпити. Ну і glitch filter той на GPIO увімкнути.

Можна і програмно-апаратний гістерезис реалізувати: підʼєднати до входу інший GPIO вихід через резистор на кілька десятків кілоом, подати на нього нуль. Як тільки задетектили на вході високий рівень - видати на цей GPIO одиницю. Як задетектили низький - видати знову нуль, і т.д.. Але цей метод працюватиме лише в комплексі з маскуванням переривання на період обробки.

jokeR пише:

Він сам по собі вийшов wink Далі по коду малі інтервали ігноряться, а закладеної похибки в +-5мс вистачає щоб вивезти wink

Ну, одна справа - ловити переривання і викликати обробник, але нічого в ньому не робити, а інша - вимикати це переривання взагалі.
На перший погляд різниці ніякої, але в деяких специфічних випадках краще вимикати.

jokeR пише:

Відпаяв конденсатор - в принципі так теж працює.

Якщо там на вході нема ТШ, то й мілівольтних пульсацій в живленні може бути достатньо, щоб на "чистому" сигналі ловити хибні фронти. Конденсатор в такому випадку навпаки робить гірше.

jokeR пише:

Але як переривання може спрацювати сильно до спаду імпульса? 45 мкс - дофіга.

Ну, дивлячись що аналізатор сприймає за спад. Якщо ESP32 сприймає низький рівень вже при половині живлення (1.6 В), а аналізатор, наприклад, лише при 0.8 В, то воно так і буде відображатись.

#3 Re: Проекти » Модуль розширення портів + Linux » 2026-11-02 12:05:07

smg123 пише:

Тут схема AOC812, VCC = 3.3V від ESP32

Ааа, це готова плата з оптопарами та DS2480B. Тепер зрозумів.

smg123 пише:

на вході Tx стояв 1,5к.

Ну, в теорії 1.5к там має бути достатньо. На фотографії погано видно, зі сторони DS2480B підтяжка 4.7к?
Може у самих оптопар CTR аномально низький. Якщо, наприклад, 50%, то низький рівень на вході DS2480B вже буде десь 1.7 В, а DS2480B за даташитом хоче не більше 0.8. Тоді так, або зменшувати резистор світлодіода, або збільшувати підтяжку 4.7к на виході оптопари.
З другою оптопарою те ж саме може бути. Там до світлодіода 2.4к?

А 5-вольтове живлення звідки берете? Воно добре стабілізоване?

smg123 пише:

після завантаження файла та відкриття посилання в окремому вікні отримую 404

Угу, в мене теж. Щось мабуть знову поламалось sad

#4 Re: Апаратні питання » Обробка переривань, esp32c3, і всяке таке.. » 2026-11-02 04:42:21

jokeR пише:

https://forum.arduino.ua/img/members/3983/schema.png

Верхній кінець R23 до джерела імпульсів підключений? У джерела пушпульний вихід чи відкритий колектор з підтяжкою?

jokeR пише:
// Обробник переривання GPIO (викликається при кожному наростаючому фронті)
static void IRAM_ATTR ective_isr_handler(void *arg)

Не шарю в фреймворку ESP32, тому питання: цей обробник в контексті переривання виконується чи в контексті задачі?
Якщо в контексті переривання, то так:

jokeR пише:
        esp_rom_delay_us(10);

робити не варто.
Крім того, всі інші функції, які викликаються з обробника, також має бути дозволено викликати в контексті переривання.

jokeR пише:

Підозрюю що сигнал на вході брудний

Можна програмний debouncing реалізувати. Як задетектували очікувану подію, вимкніть це переривання. Потім по таймеру знову вмикайте. Тільки якщо там не level-triggered переривання, а лише edge-triggered, то звісно, перед вмиканням потрібно атомарно перевірити, чи вже не сталась очікувана подія, щоб її не пропустити.

jokeR пише:

Питання: які є осцилографи, що вміли зберігати waveform, щоб не по ціні Боїнга? wink

В якості кишенькового користуюсь FNIRSI 1C15. Інтерфейс не дуже зручний, але в решті більш-менш норм.

jokeR пише:

В принципі можна спробувати замість обмежувача на стабілітроні трігер Шмідта впаяти..

Ну, по входу GPIO він уже вбудований має бути. Також у ESP32C3 наче ж є hardware glitch filter.

#5 Re: Проекти » Модуль розширення портів + Linux » 2026-11-02 03:35:50

smg123 пише:

На самому мастері по входу Tx якраз і стоїть послідовний 1,5к, який я замінив на 220 Ом, бо інших не знайшов.

Послідовно зі входом? А підтяжка скільки?

smg123 пише:

Замінив 1,5к на 220 Ом (3 к на 5В стороні не чіпав).

???
Або я щось неправильно розумію, або оптопари у вас принципово неправильно підключені.

Покажіть схему, як у вас підключені оптопари між ESP32 та DS2480B.

smg123 пише:

офтоп - а як прикріпити фотку?

Якщо фотка вже лежить десь на загальнодоступному ресурсі, то за допомогою тега img.
Якщо фотка на компі, то при редагуванні тиснете внизу "Завантаження". Відкривається діалог, завантажуєте фотку і копіюєте її URL. Далі вставляєте в повідомлення так само за допомогою тега img.

Оффтоп. Це:

smg123 пише:
  if (txByte == 0xE3) {
    Serial1.write(0xE3);
    Serial1.write(0xE3);
  } else {
    Serial1.write(txByte);
  }

можна спростити до

  if (txByte == 0xE3) {
    Serial1.write(txByte);
  }
  Serial1.write(txByte);

#6 Re: Проекти » Модуль розширення портів + Linux » 2026-11-01 02:20:34

smg123 пише:

для того, щоб фронти на виході PC817 не завалювались на ії LED треба дати десь 10 mA.

10 mA - це в районі максимума CTR. І то, максимум може бути від 5 до 15 мА, в залежності від виробника та версії.

Ось PC817S, 0x55 на 9600 бод,
TX: CP2102 3.3 В, резистор 2.2 кОм,
RX: CH341A 5 В, резистор в колекторі 2.2 кОм:
261031_pc817_9600.png
Два трансивера взяв навмисне, щоб були різні тайм референс. Все на макетці зі жмутом проводів.

Може у вас від ESP32 TX через якийсь послідовний резистор, або десь велика паразитна ємність.

smg123 пише:

Тест від Honey пройшов зразу же, а з 1,5 к були помилки

Ну, запрацювало, то й добре. Лише майте на увазі, якщо у вас працює лише на максимумі, при постійній інтенсивній передачі через кілька років кристал деградує, і може перестати працювати.

#7 Re: Проекти » Модуль розширення портів + Linux » 2026-10-30 23:25:22

smg123 пише:

Зробив ехо тести на 9600 від ESP32 3,3V через PС817 до DS2480B

Тобто з модулем розширення портів це ніяк не повʼязано. Мабуть, варто було би створити окрему тему в "Апаратних питаннях".

Як саме ви проводили цей тест? Покажіть схему підключення.

В даташиті DS2480B на сторінці 27 є приклади підключення до UART з опторозвʼязкою. Тільки там з HCPL-2300.

smg123 пише:

Вхідний резистор 1,5к для Tx оптопари великий. Розрахунки показують, що він повинен бути 220-330 Ом, щоб впевнено працював світлодіод оптопари.

Покажіть ваші розрахунки.

1.5 кОм при 3.3 В дасть струм порядка 1 - 1.5 мА. Навіть при коефіцієнті передачі струму 50% цього має бути достатньо.
Який у вас резистор в колекторі вихода оптопари?

smg123 пише:

Думаю знайшлося вузьке місце в ланцюжку, із за цього і не зміг налаштувати розширювач портів в кінці 1wire лінії.

При сумнівах дивіться осцилографом, що там на виході з оптопари.

#8 Re: Проекти » Модуль розширення портів + Linux » 2026-10-29 23:23:34

smg123 пише:

Як змусити працювати розширювач портів через гальваничну розв'язку ?

Між чим і чим ви хочете гальванічну розвʼязку?
Вважаючи, що

smg123 пише:

ШІ каже, що або PC817 повільні для 9600

то поки складається враження, що між ESP32 та DS2480B. Тоді до чого тут розширювач портів?

9600 бод через PC817 у мене пролазили без жодних проблем.

#9 Re: Програмування Arduino » ST17H66B динамічною стрічка » 2026-10-24 20:22:05

vanya82111 пише:

Проблема була в тому, що Grok неправильно написав 100раз скетч

LLM не пише скетч. Пише той, хто задає йому запит. LLM лише генерує вихідний текст по вхідному запиту.

vanya82111 пише:

може бути там код кожного блока?ччи як це працюе

В цьому ж і полягає суть реверс-інженерингу: зрозуміти, як це працює.

vanya82111 пише:

Тепер колір по воздуху передаеться на всі 5 блоків.А я хочу наприклад  на 1-2 блоки красний ,а на три інших блоків  зелений .Так імей микросхем різний?

Це ж блютуз? Там нема IMEI, там MAC адреси для ідентифікації девайсів. Але вони релевантні на канальному рівні блютуз-стека, а в керуючому протоколі, який ви колупаєте, вони не передаються. Скоріш за все передаються якісь свої внутрішні ідентифікатори або бітові маски.
Додаток в телефоні вміє вмикати "на 1-2 блоки красний, а на три інших блоків зелений"? Якщо вміє, то увімкніть і дивіться, що там передається при такій конфігурації. А якщо в протоколі не закладена можливість такого окремого керування, то тут нічого й не зробите.

#10 Re: Програмування Arduino » ST17H66B динамічною стрічка » 2026-10-24 00:26:05

vanya82111 пише:

USB-UART з логікою 3.3 В  в мене есть.але як пеедать хрен зна big_smile

Ну ось вам пайтон скрипт, що передає дві послідовності позмінно кожні півсекунди:

#!/usr/bin/env python

import sys
import serial
import serial.tools.list_ports
import time

if len(sys.argv) > 1:
    port = sys.argv[1]
else:
    port = next((
        port.device for port in serial.tools.list_ports.comports()
    ), None)

if not port:
    print('No ports found', file = sys.stderr)
    sys.exit(1)

print(f"Using {port}")

ser = serial.Serial(port, 115200)

delay = 0.5

try:
    while True:
        ser.write(bytes.fromhex('AE 01 FF FF 00 00 02 03 3C FF FF 0A FF EF'))

        time.sleep(delay)

        ser.write(bytes.fromhex('AE 01 FF 00 00 FF 02 03 3C FF FF 0A FF EF'))

        time.sleep(delay)

except KeyboardInterrupt:
    sys.exit(0)

finally:
    ser.close()

Порт можна вказати аргументом командного рядка, а якщо запущено без параметрів, то пише у перший знайдений порт.

#11 Re: Програмування Arduino » ST17H66B динамічною стрічка » 2026-10-23 21:56:08

vanya82111 пише:

Я незнаю що робить yikes

Поки що відкладіть STM32 чи ардуіну. Напишіть програмку, яка виконується у вас на компі і пише в COM-порт (USB-UART) послідовність байтів. Така програмка буде найпростішою. Наприклад, скрипт на пайтоні буде в декілька рядків. Або що вам зручніше та зрозуміліше. LLM з такою задачею також успішно справляються.
Або візьміть будь-яку готову програму-термінал під вашу ОС, яка вміє писати в COM-порт довільні бінарні дані.

Підключіть TX USB-UART адаптера до RX мікроконтролера. Землю, звісно, теж підключіть. А вихід TX від іншого мікроконтролера відключіть. Тільки дивіться, якщо у адаптера 5-вольтовий вихід, а живлення на платі 3.3V, то потрібно дільник 5:3.3 поставити.

Спробуйте для початку відіслати такі самі послідовністі як оригінальний контролер. Чи буде виконуючий контролер реагувати на них?

vanya82111 пише:

Непоняв ззначить це неможливо  big_smile зробить?

Щоб LLM телепатично вгадала, що ви від неї хочете? Навряд чи в найближчі десятиліття smile Машина має працювати, людина — думати.

#12 Re: Програмування Arduino » ST17H66B динамічною стрічка » 2026-10-23 17:52:13

Деякі протоколи передають колір в HSV форматі, або RGB і HSV одночасно. Також можуть передаватись бітові поля вимкнено/увімкнено, номери еффектів і т.д..

Ось загуглив по такому запиту: "Tuya or similar LED control subprotocol, payload 12 or 14 bytes, RGB HSC and effects bit fields. Command values: 0xAE, 0x7E. Subcommand values for 0xAE: 0x01, 0xA4, 0xA1".
ШІ видало, поміж іншого:

1. Command 0xAE: State Configurations & Dynamic Scene Mapping
The 0xAE command controls complex static modes or multi-byte configurations. The subcommands segment how the 12- or 14-byte payload area is evaluated:

    Subcommand 0x01 (Static Solid Color Control):
        Payload Layout (12 Bytes typical): Segregated directly into dedicated slots for HSV (Hue, Saturation, Value) or RGB, often trailing with a structural zone bitmask.
        Format: [Subcmd: 0x01] [H_High] [H_Low] [S_Byte] [V_Byte] [R_Byte] [G_Byte] [B_Byte] [White_Byte] [Zone_Bitfield] ...
        Execution: Instructs the MCU to bypass internal pattern engines and lock the addressable LED pixels to a single calculated color point.
    Subcommand 0xA1 (Dynamic Effect/Scene Execution):
        Payload Layout (14 Bytes typical): Used to trigger built-in micro-animations (e.g., fade, rainbow wave, flash, breathing) or music-reactive tracking.
        Format: [Subcmd: 0xA1] [Effect_ID] [Speed_Byte] [Sensitivity_Byte] [Direction/Style_Bitfield] [Color_Palette_Bitmask: 6-8 Bytes] ...
        Bitfields: The style/direction bitfield establishes transitions (e.g., Bit 0 = Forward/Reverse direction, Bits 1-2 = Transition curve like linear vs. jump, Bits 3-7 = Length of effect window).
    Subcommand 0xA4 (Custom Segment Mapping & Bitfield Layouts):
        Payload Layout (12 or 14 Bytes): This maps physical address blocks of LEDs into independent logic segments or custom DIY patterns.
        Format: [Subcmd: 0xA4] [Segment_Count] [Active_Segments_Bitfield_1] [Active_Segments_Bitfield_2] [Color/Style_Index] ...
        Execution: Allows the control application to selectively enable or toggle specific zones along an IC-driven addressable LED strip without modifying underlying global scene tables.

2. Command 0x7E: Real-time Streaming & Reactive Sync
The 0x7E command bypasses state memory buffers on the target chip. It is used for high-frequency updates, such as camera color tracking, screen mirroring sync, or real-time microphone processing.

    Payload Mechanism: Rather than using discrete subcommands like 0xAE, 0x7E packets usually feature a strict structure:
    [Command: 0x7E] [Frame_Sequence_ID] [HSC/RGB Bitfields and Array Data] [Checksum]
    Data Aggregation: The 12 or 14 bytes tightly wrap combined HSC (Hue, Saturation, Color Intensity) data alongside Effects bit fields.
        Hue is typically defined as a 16-bit integer (0-360 range mapped across two bytes) or compressed down to an 8-bit scale (0-255), leaving remaining bytes open for active runtime modifiers (like sound-reactive decay time or audio peak indicators).

Але випитати у нього, з якого документа чи кода взята ця інформація, мені не вдалося. Посилань ніяких не дає.

Цей опис наче частково співпадає з тим, що спостерігається у вас, але не повністью. Розробники могли взяти його за основу, але повикидати якісь одні поля і додати інші.
До того ж, такі фрейми з опису передаються як payload в Tuya Serial MCU Protocol, із заголовком який містить поле довжини. Тобто MCU знає розмір фрейма. У вас же фрейми без цих заголовків, так що мабуть, їх довжина фіксована для кожної підкоманди.   

Шанси знайти адекватну інформацію зростуть, якщо шукати по назві виробника і конкретній моделі LED-контролера. Контролера як цільного виробу, а не чіпа MCU який в ньому використовується.

#13 Re: Програмування Arduino » ST17H66B динамічною стрічка » 2026-10-22 23:15:51

jokeer пише:

Взагалі навіщо міняти один контроллер на інший? Якби китайці хотіли б цю штуку зробити на stm32- зробили б.

Автор хоче керувати за допомогою енкодера замість телефона. Цілком зрозуміле бажання. Тільки я б у такому разі шукав LED-контролер з нормальним документованим інтерфейсом.

#14 Re: Програмування Arduino » ST17H66B динамічною стрічка » 2026-10-22 22:10:20

vanya82111 пише:

Яне розумію а що в архіві не видно?

Так це ж треба звідти експортувати ті байти, порівнювати, тобто проводити повноцінну дослідницьку роботу.

vanya82111 пише:

Виможете улаленно зайти глянути?

Вибачте, але ні.

vanya82111 пише:

0–10 сек — вимкнено

Тут ідуть по два пакети "AE A4" та "AE 01".
А чи передається в цей час щось у зворотній бік, на іншій парі TX/RX?

EF, скоріш за все - маркер кінця пакета.

vanya82111 пише:

10–20 сек — червоний 50%

Тут уже тільки "AE 01 ..."

Зауважте, при перемиканнях видно пакети з іншим початком та довжиною:

7E FF 04 01 FF FF FF FF EF // 10
7E FF 05 03 00 FF 00 FF EF // 20
7E FF 05 03 00 00 FF FF EF // 30
7E FF 05 03 FF FF FF FF EF // 40
7E FF 01 31 00 FF FF FF EF // 50
7E FF 01 2A 00 FF FF FF EF // 50
// потім при увімкненні білого, декілька поспіль кожні чверть секунди: 
7E FF 01 04 00 FF FF FF EF
7E FF 01 13 00 FF FF FF EF
7E FF 01 3A 00 FF FF FF EF
7E FF 01 5E 00 FF FF FF EF

за якими також зʼявляється "AE A1 ..."

AE A1 0A FF FF FF FF FF FF FF FF FF FF EF

Також зустрічається

0x6F 0xF6 0xFE 0x7E 0xF6 0xFE 0x6E 0x7F 0x76 0xB7 0x76 0xB7 0x36 0x36 0x36 0x36 0xFE

але не дуже зрозуміло, чи це теж якісь команди, чи глюки синхронізації.

Якийсь пропрієтарний протокол, тисячі їх. Можете скормити ці данні якій-небудь LLMці, може знайде, що хтось уже розколупав саме такий і виклав у відкритий доступ. Успіхів у декодуванні.

#15 Re: Програмування Arduino » ST17H66B динамічною стрічка » 2026-10-22 19:02:46

vanya82111 пише:

Чим вам допомогти ще? щоб  ви розібрались?

Мені допомогти? Навіщо воно мені? Здається, це вам потрібно.
Я не знаю, що в даному контексті значить "зона" і які там контроли в телефонному додатку.

Для початку реалізуйте щось типу blink. Щоб раз на секунду перемикало між двома кольорами.
Знайдіть, який байт в пакеті відповідає за який колір/канал.
Як запрацює, тоді додавайте керування енкодером.

#16 Re: Програмування Arduino » ST17H66B динамічною стрічка » 2026-10-22 18:09:08

А, побачив архів з осцилограмою. Так, там serial 115200 бод.
Передається по дві посилки по 14 байт. Імовірно, що:

AE - заголовок
A4/01 - якийсь ідентифікатор. Можливо, адреса призначення.
12 байт - 3 канала RGBW або 4 канала RGB, або якийсь інший формат. Потрібно дивитись, як ці значення корелюють із тим, що виставляєте з телефону.

Схоже на проприєтарний Tuya LED subprotocol, що йде як payload в "Tuya Cloud Universal Serial Port Access Protocol". Тільки там аргументи для підкоманди 01 інші.

#17 Re: Програмування Arduino » ST17H66B динамічною стрічка » 2026-10-22 17:08:53

vanya82111 пише:

Контакти під UART на платі

Знайдіть мінімальну тривалість імпульсу, що зустрічається в осцилограмі. Обернене значення з великою ймовірністью відповідатиме бодрейту.
Виставте з телефона певну конфігурацію, запишіть посилку.
Змініть один параметр в конфігурації, наприклад, яскравість на одному каналі. Запишіть посилку.
Порівняйте, що в посилках змінилось.
Змініть інший параметр, запишіть, порівняйте, і т.д.
Таким чином визначите структуру протоколу, хоча би приблизно.

Ще як варіант, можете спробувати зчитати прошивку з ST17H66B, якщо там не залочено, і дизасемблити. Сучасні LLMки непогано розгрібають дизасембльований код і відновлюють загальну структуру програми, якщо що.

#18 Re: Програмування Arduino » ST17H66B динамічною стрічка » 2026-10-22 01:04:21

vanya82111 пише:

перша зона — це динамічне підсвічування (лінії DATA плюс та мінус)

Мабуть же DMX512 (напис на платі натякає). Але це не точно.

vanya82111 пише:

а друга зона — звичайне RGB-підсвічування.

Що таке "звичайне RGB-підсвічування"? 3-канальна ШІМ?

vanya82111 пише:

1- щоб STM32 видавав такі самі байти.
2-Чи видно по байтах, чи можна керувати кольором кожного з 4-х блоків окремо  (чи є там адресація)?

Наскільки можу зрозуміти з картинки, ті "байти" - це те, що аналізатор спробував декодувати як звичайний asynchronous serial. А там зовсім не факт що саме serial. Потрібно дивитись осцилограму і розпізнати, що там за протокол. Може й serial, але на іншому бодрейті, може якийсь інший стандартний, а може й проприєтарний. Це реверс інженеринг.
У цього блока є назва? Є якийсь опис чи user manual? Пошукайте по назві, може хтось уже розколупав його.

vanya82111 пише:

3- замість телефона використовувати ESP32-C3, щоб вона сама по повітрю керувала головним master?Slave напряму?»

Те ж саме: потрібно сніфити bluethooth трафік і розпізнати, що там за протокол керування. Або шукати в інтернеті, може ця інформація вже є у відкритому доступі.

#19 Re: Програмування Arduino » Підкажіть як правильно підібрати екран під АМТ630А » 2026-10-21 19:41:32

На старому екрані є якесь маркування, за яким його можна ідентифікувати? (Фото екрана не відкривається, 404).
Якщо нема, то шукати по назві самого пристрою відеоспостереження, може десь є ця інформація.

Наскільки розумію, у АМТ630А прошивка лежить на зовнішній флешці. Якщо підключати дисплей з параметрами, відмінними від оригінального, то потрібно буде колупати ту прошивку.

#20 Re: Програмування Arduino » ST17H66B динамічною стрічка » 2026-10-21 19:28:01

Поки щось не дуже зрозуміло, що ви хочете. У вас є якийсь безпровідний DMX контролер. Ви хочете замінити один із його MCU на зовсім інший, і щоб LLM написав для нього прошивку, яка би повторювала функції оригінального контролера і реалізовувала додаткові? Та ще й з використанням arduino фреймворка? Так воно навряд чи буде.
Для початку потрібно розуміти, які саме функції виконує цей девайс в оригінальному вигляді. Що там на вході "5-го контакту другої ST17H66B", DMX512?

#21 Re: Проекти » клавіатура FK13P » 2026-08-28 18:12:39

Evgen59 пише:

як примусити клавіатуру FK13P працювати з Pico 2 через GP16.GP17

Щоб через довільні GPIO піни, то можете взяти https://github.com/sekigon-gonnoc/Pico-PIO-USB.

#22 Re: Різне » Не додається bin файл » 2026-08-23 18:13:02

Niklot пише:

Дивно, залишаю повідомлення але чомусь їх не бачу

Тому що в них присутні посилання на сторонні сторінки, форум таке чомусь іноді не пропускає.
Якщо на попередньому повідомлені натиснути "Цитувати", то деякий час їх можна побачити внизу.

Опція "--version" була видалена в esptool 5.0.0. Мабуть, thonny чи якийсь плагін для нього розраховує на esptool старішої версії.
Якби мені було потрібно розібратись в точній причині тієї помилки, під лінуксом я би відслідкував, хто там кого з якими параметрами запускає. Але як то у віндовс зробити, нажаль, не знаю.
Ну запустилось, то й добре smile

#23 Re: Програмування Arduino » esp-idf vs Arduino » 2026-08-23 01:20:06

jokeer пише:

Це тому що якимсь дивом бінарник під arduino framework вийшов менший - от і виникла підозра, що там всередині щось хитро скомпільоване.

Ардуіно фреймворк лінкує з уже скомпільованими freertos.a та іншими бібліотеками. Здається, ось тут можна знайти, що саме і з якими опціями компілюється: https://github.com/espressif/esp32-arduino-lib-builder. Тільки відкопати, з якої гілки чи тега воно збиралось. І якщо не змінювали опції локально.

#24 Re: Програмування Arduino » esp-idf vs Arduino » 2026-08-22 13:42:22

jokeR пише:

Насправді там є що вимкнути wink

Ну питання було - чи можна скомпілювати різні частини з різними опціями, а не як зменшити розмір бінарика smile

#25 Re: Програмування Arduino » esp-idf vs Arduino » 2026-08-22 02:55:58

jokeR пише:

От і питання - може є спосіб збирати свій код з клочом -Og, а бібліотечний - з -Os ?

Там же cmake? Теоретично можна, щось типу

set_source_files_properties(main.c PROPERTIES COMPILE_OPTIONS "-Og")

Але боюсь, що разом з кастомним "-Og" esp-idf все одно додаватиме "-Os" із sdkconfig, і який із них виявиться останнім, тобто актуальним - х.з.
А щоб прибрати дефолтні опціі, мабуть, доведеться правити CMakeLists.txt щоб "свій" код компілювався як окрема бібліотека зі своїм target_compile_options().
От тому й не люблю всякі фреймворки та обгортки: як автори собі придумали, так щось і працює, а як треба крок ліворуч чи праворуч - або ламається, або ігнорується.

Підвал форуму