Апаратна частина
Я не можу завантажити прошивку на свій пристрій. Що робити?
Переконайтеся, що ви використовуєте саме так званий «data» кабель, а не «power» кабель. «Power» кабель призначений лише для заряджання пристрою, а «data» кабель - і для передачі даних, і для заряджання.
Попередження
Зверніть увагу: Лілка не підтримує USB 3.0, тому ви не зможете прошивати її через кабель Type C - Type C. Використовуйте кабель Type C - Type A.
Чому Лілка не розпізнає карту пам’яті? Чому карта пам’яті працює нестабільно?
Причин цьому може бути багато. Ось найпоширеніші із них:
У вас встановлено неактуальну версію платформи «Espressif 32». Видаліть та завантажте заново «Espressif 32» у менеджері платформ «Platformio». Після цього перекомпілюйте прошивку для Лілки.
Карту пам’яті не було коректно форматовано перед використанням. Відформатуйте SD-карту на ПК у файлову систему FAT32. Якщо у вас немає картридера, для форматування можна використати Android-смартфон зі встановленим додатком «File Manager +» або будь-яким іншим, що має таку функцію. Також коректно форматувати карту можуть деякі кнопкові телефони з підтримкою microSD.
Живлення плати Лілки нестабільне. Можливо, у вас на плату потрапляють електромагнітні завади або підключені модулі споживають більше струму, ніж може стабільно видавати лінійний стабілізатор напруги, що входить в комплект до плати. Спробуйте замінити С2 та С3 на платі на конденсатори з більшою ємністю. Наприклад, по 5 мкФ+.
Карта пам’яті працює нестабільно. Зазвичай таке буває, якщо вам не пощастило придбати дуже специфічну підробку. Спробуйте використати карту пам’яті від іншого виробника.
Неякісна пайка компонентів. Можливо, під час збірки ви погано припаяли мікроконтролер/роз’єм карти пам’яті або замкнули лінії, по яких карта керується.
Дефектний роз’єм microSD або проблеми з виводами мікроконтролера, які керують картою пам’яті. Якщо ви перевірили декілька карт пам’яті на своїй платі Лілки і жоден із перелічених пунктів вам не допоміг, варто задуматися про заміну роз’єму або модуля ESP32-S3.
Попередження
Лілка не підтримує функцію гарячої заміни карти пам’яті, тобто карта повинна бути встановлена в роз’єм до увімкнення пристрою.
Що це за цифри в кружечках на платі Лілки?
Цифри в кружечках на платі Лілки - це номери GPIO-пінів мікроконтролера, які позначають, до якого GPIO підключений той чи інший компонент Лілки.
Попередження
Не плутайте номери GPIO з номерами пінів! Наприклад, GPIO8 - це пін 12, а не 8. Радимо вам завжди користуватися номерами GPIO, а не номерами пінів - як в коді, так і в документації.
Детальніше про піни ESP32-S3-WROOM-1 можна дізнатися в офіційній документації ESP32-S3-WROOM-1.
Якщо ви хочете підключити до Лілки якийсь сторонній модуль, ми рекомендуємо використовувати для цього Роз’єм розширення, де жоден пін не зайнятий внутрішніми компонентами Лілки.
Але оскільки Лілка - це відкрита DIY-консоль, ніхто не забороняє вам використовувати будь-які піни з нестандартною метою. Проте майте на увазі, що в такому випадку Бібліотека lilka не працюватиме належним чином, оскільки вона очікує, що до цих пінів будуть підключені конкретні відомі їй компоненти. Тому вам доведеться самостійно писати власний код для роботи з цими пінами.
Моя програма взаємодіє одночасно з SD-картою та дисплеєм, але вона працює дуже повільно!
Для роботи з SD-картою та дисплеєм Лілка використовує одну шину SPI.
Це означає, що в будь-який момент часу шина може бути зайнятою або SD-картою, або дисплеєм, і спроба взаємодії з одним пристроєм, коли інший пристрій використовує шину, призведе до затримок і, як наслідок, до зниження частоти кадрів та швидкості читання/запису файлів.
Для цього є декілька причин:
Це дозволяє зменшити кількість пінів, задіяних для підключення SD-карти та дисплею.
ESP32-S3 має всього дві шини SPI, тому використання однієї шини для обох пристроїв дозволяє звільнити іншу шину для потреб користувача (наприклад, для підключення зовнішньої камери чи акселерометра).
Щоб уникнути цих затримок, потрібно уникати роботи з SD-картою та дисплеєм одночасно. Найпростіший спосіб - це читати дані з SD-карти в пам’ять PSRAM (в ESP32-S3 її достатньо багато - аж 8 МБ), і надалі працювати з цими даними, не взаємодіючи з SD-картою.
Враховуючи, що (станом на момент написання цього документу) SD-карта працює на частоті 25 МГц, читання файлу розміром 1 МБ з SD-карти за ідеальних умов займе менше однієї секунди!
Тому, якщо ви пишете гру, яка завантажує текстури чи звуки з SD-карти, просто завантажте їх у пам’ять PSRAM один раз при запуску гри і надалі працюйте з ними вже з пам’яті, не взаємодіючи з SD-картою.
Чому ви не вивели GPIO35, GPIO36 та GPIO37 на роз’єм розширення?
Ці піни можна використовувати лише в деяких (менш потужних) варіантах ESP32-S3-WROOM.
В ESP32-S3-WROOM-N16R8, який використовується в Лілці, ці піни використовуються для внутрішіх потреб (а точніше - для спілкування мікроконтролера ESP32-S3 з пам’яттю PSRAM).
Тому використовувати їх для будь-яких інших цілей заборонено.
Чому ви не вивели GPIO45 на роз’єм розширення?
GPIO45 - це один з так званих «strapping» пінів, які використовуються для вибору режиму завантаження мікроконтролера та інших налаштувань.
Використання цього піна небезпечне, оскільки він встановлює режим напруги SPI-шини. Тому ми вирішили не виводити його на роз’єм розширення, щоб уникнути можливих проблем та потенційних пошкоджень пристрою.