Skip to content

DRM Watch 3 - Наручний годинник з дисплеєм SHARP Memory LCD

License

Notifications You must be signed in to change notification settings

drfailov/DRM_Watch_v3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Про проект DRM Watch 3

DRM Watch 3 - це мій саморобний наручний годинник, в основі якого лежить дисплей Sharp Memory LCD, ESP32-S2 і бажання носити це на руці:)
Це НЕ "Smart годинник"! Цей пристрій по своїй функціональності близький до звичайного електронного годинника, з кількома додатковими можливостями, і їх можна додавати, перепрограмовувати годинник під себе.
Наразі в прошивці є всі можливості, що притаманні типовому годиннику і що дозволяє повноцінно використовувати його на щоденній основі.
В цьому репозиторії можна знайти інфу і інструкції щоб зібрати собі такий годинник.

Це у мене таке хобі:) Я в кінці 2023 поліз вивчати проектування плат, після появи 3д принтера в 2022 поліз вивчати 3д моделювання, а за освітою програміст. От власне це все і зібралось воєдино в цьому проекті) Робив це все з нуля. А яка б класна з цього була дипломна робота)))

Посилання що наведено в цьому тексті є актуальними станом на 2024-04. Якщо якісь товари будуть вже не актуальні, то шукайте за фотками))

Фото

Особливості годинника

  • Зроблено в Україні;
  • Стабільно працює і підходить для щоденного користування;
  • Дисплей завжди показує час;
  • Є дуже тускла але дуже приємна нічна підсвітка дисплея;
  • Є ліхтарик, білий яскравий та червоний нічний;
  • Акумулятора вистачає на понад 20днів, є індикатор заряду;
  • Зручні меню, звідки можна отримати доступ до всіх функцій;
  • Наявність Wi-Fi, можна зберегти до 8 мереж в пам'яті;
  • Можливість синхронізації часу по Wi-Fi;
  • Багато мелодій. Їх можна або просто слухати або встановити на будильник.
  • Імітація звуку мявчання кошенят;
  • Кілька циферблатів, які можна налаштувати;
  • Секундомір, працює в фоні;
  • Будильники, до 6шт з назвами;
  • Вічний календар (або я ще не догортав до кінця);
  • Повнекранні клітинні автомати та анімації (Життя, Мураха, Вогонь, Шум)
  • Зарядка по USB, в тому числі від TypeC-TypeC;
  • Можна оновлювати прошивку по USB, не розбираючи годинник.
  • Компоненти для збірки легко дістати;
  • Корпус підходить для стандартних 22мм ремінців;
  • Якщо під час експериментів з прошивками годинник завис, в корпусі передбачено отвір щоб голкою його перезавантажити.
  • Водонепроникність до 0 метрів:) (можна трохи покращити якщо при збірці обробити плату лаком а корпус збирати з клеєм.)
  • Годинник можна використовувати як поле для експериментів з ESP32-S2: акумулятор, 3 кнопки, пищалка, дисплей, 3 світлодіоди;
  • Екран "Про годинник" містить інформацію про розробника та версію прошивки.

Застереження під час користування:

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

Короткий відео огляд годинника:

https://www.youtube.com/watch?v=3oIwZVaCEvY

Короткий відео огляд мелодій:

https://www.youtube.com/watch?v=Ylm3CU0DTDE

Опис меню, функцій та екранів

Основний екран, циферблат

Тут відображаєтья час. Це основний екран годинника, на нього переходят більшість екранів по таймеру бездіяльності. На цьому екрані годинник заходить в сон і спить, просинаючись раз в хвилину щоб намалювати час.
Кнопка вгору (коротке натиснення) - Відкрити секундомір.
Кнопка вгору (довге натиснення) - Відкрити таймер.
Середня кнопка (коротке натиснення) - Увімкнути ліхтарик.
Середня кнопка (довге натиснення) - вимкнути годинник.
Кнопка вниз - відкрити меню програм.

Програми

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

Кнопками вгору та вниз - обрати пункт меню.

Центральна кнопка - активує обраний пункт меню.

Програми -> Будильник

Будильник запускає відтворення заданої мелодії в заданий час дня. Можна налаштувати кілька будильників. До кожного можна задати час, назву та мелодію. Будильник спрацює якщо годинник заряджений і якщо годинник звісно знає поточний час. Спрацює також якщо в момент спрацювання ви знаходитесь в меню а не на циферблаті, а також спрацює якщо годинник вимкнено (але він при цьому заряджений).
Кнопками вгору та вниз - обрати пункт меню.
Центральна кнопка активує обраний пункт меню.
Коли пункт меню активований, кнопки вниз та вгору міняють значення пункту.
Під час будильника гратиме обрана мелодія і відображатиметься назва будильника та час на який будильник було встановлено. Під час спрацювання будильника його можна закрити (вимкнути на поточний раз), або вікласти на 10 або 5 хвилин (за умови якщо в цей момент не запущено таймер). Після спрацювання будильника він спрацює знову наступного дня.

Програми -> Календар

Показує календар на місяць.

Кнопками вгору та вниз - змінити поточний місяць.
Центральна кнопка - вийти.

Програми -> Таймер

Таймер веде відлік заданого часу від моменту запуску. Коли час спливає, запускається звуковий сигнал.
Кнопками вгору та вниз задається час на який встановлюється таймер. Центральна кнопка або закриває програму, або запускає таймер.
Коли лунає звуковий сигнал, його можна закрити, або вікласти на 10 або 5 хвилин.

Програми -> Вогонь

Режим повноекранної анімації вогню. Красиво. В основі лежить шум Перліна.
Будь-яка з кнопок закриває програму.
Дякую за допомогу з реалізацією Кирилу Лейферу, ось його репозиторій: https://github.com/BOOtak/dct3ngine/blob/master/src/games/perlin_test

Програми -> Мелодії

Меню зі списком мелодій. Можна переглянути назви та увімкнути мелодію. Їх там багато.

Кнопками вгору та вниз - обрати мелодію.

Центральна кнопка - відкрити і відтворити мелодію.

Програми -> Мелодії -> Плеєр

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

Якщо запущений при спрацюванні будильника:

Кнопками вгору та вниз - відкласти будильник. Мелодія зупиниться і буде запущено таймер на 10 або 5 хвилин. Якщо якийсь таймер вже запущений - відкласти будильник не вийде.

Центральна кнопка - Зупинити відтворення мелодії та повернутись до попереднього меню.

Якщо запущений при відкриванні мелодії зі списку:

Кнопка вниз - увімкнути або вимкнути повтор мелодії. Якщо запущено повтор, в статусному рядку відображатиметься відповідна піктограма, а мелодія гратиме доки годинник не розрядиться.
Центральна кнопка - Зупинити відтворення мелодії та повернутись до попереднього меню.

Налаштування -> Вміст циферблату

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

Де брати комплектуючі

Готових годинників в продажу не існує, тому якщо є бажання отримати такий годинник, можна зібрати самому.

Дисплей

Дисплей потрібен, щоб відображати інформацію користувачу:)
Модель дисплея: Sharp LS027B7DH01A
Він звісно недешений, але мені дуже подобається як він виглядає. Його можна купити готовим, я купував тут:
https://www.aliexpress.us/item/1005005611440829.html

Конектор дисплея

Для підключення цього дисплея. Я купував модулем, але можна пошукати і роз'єм окремо.
Модель: FPC 10pin 0.5mm pitch Я купував тут:
https://www.aliexpress.us/item/1005002288363000.html
https://www.aliexpress.us/item/10000348360254.html

Акумулятор

Якщо потрібно щоб пристрій працював автономно, то потрібен акумулятор.
Корпус та плата спроектовано під літій-іонний акумулятор такої форми: 35255mm. Звісно, підійде будь-який і меншого розміру, але матиме меншу ємність.
Модель яка найкраще підходить: lipo 502535. Я купував тут:
https://prom.ua/ua/p1286391849-akkumulyator-kontrollerom-universalnyj.html

Буззер

Буззер потрібен щоб пищати, грати мелодії.
Модель: Buzzer SMD 7525-3.6V-passive. Я купував тут:
https://www.aliexpress.us/item/1005003620083880.html
https://eu.mouser.com/ProductDetail/CUI-Devices/CMT-7525S-SMT-TR?qs=qCxwlXJ4fnw4ZHFvNib47A%3D%3D

Мосфет

Мосфет використовується для того щоб керувати буззером, щоб на нього надходив не слабкий сигнал з мікроконтроллера, а потужний з батареї.
Модель: 2N7002LT1G. Можна купити тут:
https://www.aliexpress.us/item/1005003079655220.html

ESP32

Я розпаював на комплектуючі плати Lolin S2 Mini, ось ссилка де я купував:
https://www.aliexpress.us/item/1005004438665554.html

Якщо немає бажання розпаювати Lolin S2 Mini, можна купити комплектуху окремо:

Чіп: ESP32-S2, QFN56
https://www.tme.eu/en/details/esp32s2/iot-wifi-bluetooth-modules/espressif/esp32-s2/
https://eu.mouser.com/ProductDetail/Espressif-Systems/ESP32-S2?qs=GBLSl2Akirtmlui%2FgtDaSQ%3D%3D
Кварц: SMD 3225 4pin 40MHz:
https://www.aliexpress.us/item/1005004689346275.html

Модуль зарядки акумулятора

Щоб була можливість заряджати акумулятор. Причому якщо акума не буде - годинник не працюватиме навіть на зарядці.
Тому якщо потрібно обійти модуль зарядки, можна замкнути перемичку біля мікросхеми заряду на платі (вона вона розташована біля самого краю плати) - вона подасть напряму напругу з USB порта замість напруги батареї. Основне не залишити перемичку зі вставленим акумом, щоб не отримати фаєр-шоу)))
Розпаявши такий модуль можна дістати чіп TP4056 , який відоповідає за зарядку акума. Датащит:
https://dlnmh9ip6v2uc.cloudfront.net/datasheets/Prototyping/TP4056.pdf
Якщо нема бажання розпаювати модуль, можна знайти окремо:

Чіп: TP4056
https://www.alibaba.com/product-detail/TC4056A-SOP-8-is-compatible-with_1600806443781.html
Роз'єм: TYPE-C-31-M-12
https://jlcpcb.com/partdetail/Korean_HropartsElec-TYPE_C_31_M12/C165948
Світлодіод: 0805 SMD LED
https://www.aliexpress.us/item/4000936781234.html

SMD Резистори

Я робив плату під резистори SMD 0603 (переважно), їх я брав з такого набору:
https://www.aliexpress.us/item/1005002364437129.html

SMD Конденсатори

Я робив плату під конденсатори SMD 0603 (переважно), їх я брав з такого набору:
https://www.aliexpress.us/item/1005006124283234.html

RTC модуль

Використовується мікросхема Analog Devices DS3231, я її купував в складі такого модуля:
https://www.aliexpress.us/item/32822420722.html
Але можна також знайти мікросхеми окремо. Ось ще трохи інфи по ним:
https://octopart.com/ds3231-maxim+integrated-14739425 https://www.analog.com/en/products/ds3231.html
https://www.analog.com/media/en/technical-documentation/data-sheets/DS3231.pdf

Світлодіод ліхтарика

Ці світлодіоди я діставав виключно з підсвітки старих телефонів, бо їх дисплеїв у мене багато.
Але я знайшов їх типорозмір щоб можна було замовити окремо: 020 SMD Side View LED White 6000K.
Знайшов що тут можна замовити:
https://www.aliexpress.us/item/32419907074.html

Кнопки

Я так і не знайшов як їх можна назвати, тому шукаємо по фото і цьому тексту: 243.5mm Micro SMD Tact Switch Side Button
https://www.aliexpress.us/item/32880903601.html

Місця для гвинтів

Такі можна знайти на материнці DJI Mavic 3. Під гвинт М1.2
Щось схоже:
Обирати SMTSO-M1.2-2
https://www.aliexpress.com/i/1005005125674149.html

https://www.swaco.com/SMTSO-M1.2-2ET-PEM-ReelFast

SMTSO-M1.2-2ET
https://eu.mouser.com/ProductDetail/PEM/SMTSO-M1.2-2ET?qs=l4Gc20tDgJKS2GEfMx1Yrw%3D%3D

Електролюмінесцентна панель

Цей елемент можна ставити або не ставити за бажанням, залежно від того чи потрібна вам нічна підсвітна екрана.
Електролюмінесцентна панель (EL панель) є складовою частиною системи підсвітки. Це панель, що світиться під впливом високої напруги і частоти. Також їх називають світлоконденсаторами (LEC). Це просто цікаві факти щоб краще розуміти що воно таке.
Фішка цього типу підсвітки в тому, що панель є дуже тонка, світить дуже рівномірно приємним синім кольором, а також її можна нарізати на фрагменти потрібної форми. Але після порізки складною є задача підключення до панелі. Я для підключення використовував одиночні жили дроти а також токопровідний клей.
Мінуси: будучи розташована за дисплеєм який тут використовується, її ледь-ледь видно, але вночі цього достатньо. Також трохи пищить при роботі. А ще для її роботи потрібна досить складна схема драйвера.
Раджу купувати синій колір, тому що EL панель натівно такого кольору, а в інші кольори її тупо фарбують, а фарба поглинає частину світла. Якщо прийшла пофарбована панель, її можна очистити від фарби лезом.
Ось де я купував:
https://www.aliexpress.us/item/1005003971896012.html

Драйвер електролюмінесцентної панелі

Цей елемент можна ставити або не ставити за бажанням, залежно від того чи потрібна вам нічна підсвітна екрана.
Це та мікросхема, яка і формує змінну високу напругу для електролюмінесцентної панелі.
Схему її підключення я не розумію, просто зібрав по схемі і воно запрацювало))
Модель: Microchip HV857MG MSOP8
Датащит:
https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/HV857-High-Voltage-Low-Noise-EL-Lamp-Driver-IC-Data-Sheet-DS20005683.pdf
Я купував тут:
https://www.aliexpress.us/item/1005005512523052.html

Обвязка драйвера електролюмінесцентної панелі

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

Модель: Capacitor SMD 1206 10NF X7R 200V
https://www.aliexpress.us/item/1005004628006766.html

Модель: 1206 320PCS 16Value
https://www.aliexpress.us/item/1005006124283234.html

Модель: Diode ES1D
https://www.aliexpress.us/item/1005005254835443.html

Модель: SMD Inductor 1210 3225 22UH
https://www.aliexpress.us/item/32981310345.html

Клей для електролюмінесцентної панелі

Цей елемент можна ставити або не ставити за бажанням, залежно від того чи потрібна вам нічна підсвітка екрана.
Цей клей я використовую для того щоб під'єднати дроти до електролюмінесцентної панелі. Детальніше про процес можна почитати в розділі "процес збірки".
Модель: MECHANIC MCN-DJ002 Conductive Adhesive Glue Silver
https://www.aliexpress.us/item/1005002369819447.html

Ремінець

Можна купити на алі, вибір великий. Потрібні стандартні ремінці шириною 22мм.
До прикладу, можна замовити тут:
https://www.aliexpress.us/item/1005005890436737.html

До ремінців як правило йдуть в комплекті і піни для встановлення, але якщо його в комплекті нема, можна замовити окремо:
https://www.aliexpress.us/item/1005006026719458.html

Корпус

Корпус спроектовано для простоти збірки та простоти друку на FDM 3D принтері. При цьому можна також замовити друк металом або фрезерування.
Малював корпус в Fusion 360, якщо потрібно щось змінювати, відкривайте файли .f3d. В папці купа версій, шукайте версію з новішою датою в назві.
Корпус спроектовано під ремінці 22мм.
Корпусні частини краще друкувати з чорного платику, а вкладку з кнопками - прозорим пластиком, щоб через нього світили ліхтарики.
В папці багато файлі і моделей, обираючи найновіший дивіться на номер версії або дату в назві файлу.
Для замовлення фрезерування та лазерного маркування вам знадобиться файл .step та .dwg.
Для друку металом або звичайним 3д принтером знадобиться .stl файл. (по одному на кожну частину корпусу)

Плата

Корпус спроектований під плату товщиною 0.8mm. Колір плати можна обирати на свій смак, я обирав чорні.
В папці можна знайти плати різних ревізій, коротко про ревізії:
Rev 1: конденсатори розміщені надто далеко від контроллера, конденсаторів мало, немає елементів що формують EN для контроллера, нема RTC мікросхеми, антена на платі неефективна, розпіновка в деяких моментах відрізняється від нової ревізії, елементи розміщені не плотно, немає ніякої підсвітки.
Rev 2: вісутні підтяжки RTC SCL та SDA. Елементи розміщені не плотно, підсвітна світлодіодна і неефективна.
Rev 3: Помилок по схемі наче поки немає, я зібрав і воно одразу запрацювало. Підсвітка електролюмінесцентна з драйвером. Компоненти розміщені плотно. Можна поставити великий акум на 500мАг.
Rev 4: Додано піни щоб підключити до RTC окремий акум щоб не збивався час при розрядці акумулятора, додано елементи які відповідають за роботу вібро. Поки програмно він ніяк не задіяний, але хай буде.


Щоб замовити собі плату, можна скористатись файлами в папках GERBER. Ці файли достатньо завантажити на сайт не виготовляють плати, я замовляв у **jlcpcb.com**. Там одразу має бути видно як виглядатиме плата.
Якщо потрібно щось поміняти - ставимо KiKad, відкриваєм проект `\Board\_DRM_Watch_v3` і можна міняти.
Експортувати Gerber на Drl можна в редакторі плат KiKad.
Також в схемі в проекті я до кожного елемента пододавав інфу про те де його можна замовити (якщо знаю звісно)

Замовлення зібраної плати

Деякі виробники плат в Китаї пропонують замовлення плат вже готовими і зібраними (PCBA = PCB Assemply). Як правило процес замовлення не надто автоматизований, а робота таких виробників покладається на роботу менеджерів. Тому такі замовлення вони часто приймають у форматі особистої переписки в месенджерах.
Для такого замовлення їм треба наступна інформація:

  • Gerberи плати. Це формується з редактора плат KiKad в файли .gbr і містить інформацію про саму плату (всі її шари). Один файл .gbr це один шар плати. Можна взяти в папці Board/2024-04-18 GERBER REV4 (або новішу).
  • Список елемнетів які розміщено на платі, тобто файл BOM. Він формується зі схеми в KiKad в файл .csv і містить інформацію про номер елемента на платі, виробника, назву компонента, посилання де його можна замовити, та опис кожного елемента. Можна взяти в папці Board/2024-04-18 GERBER REV4 (або новішу).
  • Інформацію про розміщення елементів на поверхні плати. В моєму випадку це окремий шар на Gerber плати, а саме DRM_Watch_V3-F_Fab.gbr. Там я розписав розміщення елементів, причому я робив це для себе в довільному по суті форматі, але цей файл підійшов для замовлення.
  • Інформація про тип плати, в моєму випадку це товщина 0.8mm та колір чорний.

Процес збірки та налагодження

Підготовка електролюмінесцентної панелі

Оскільки щоб встановити електролюмінесцентну панель, її потрібно порізати, то з'являється проблема її підключення, адже контакти панелі відріжуться. Окрім того все підключення слід виконати дуже компактно, оскільки місця під дисплеєм мало.
У тих панелей що я замовляв, на зворотній стороні можна було бачити, що два контакти які живлять панель проходять по вьому її периметру. В них і будем підключатись. Щоб все працювало треба один дріт підключити до зовнішнього електрода, а другий до центрального.
Підключатись будемо одною тонкою жилою багатожильного дроту. Вона звісно дуже тендітна, але в зібраному годиннику це не проблема.
Я робив так:

  • беремо гостре (свіже, незатуплене) лезо, і під мікроскопом розрізаємо ламінацію панелі. Діяти треба обережно, щоб не пошкодити нічого зайвого.
  • Далі в цей розріз обережно запихуємо кінець жили дроту, пінцетом або лезом. Бажано щоб всередину помістилось хоча б 4мм дроту.
  • Далі набираємо на зубочистку провідний клей, зовсім трішки, і набиваємо провідний клей всередину вслід за дротом. Далі чекаємо поки клей засохне.
  • Процес засихання клею можна прискорити прогрівши місце поклейки до температути приблизно 100 градусів на хвилин 20. Я робив це на паяльному столику.
  • Після поклейки вигинаємо жили дроту так щоб вони виходили до контактів EL1 та EL2 на платі, і всю цю поклейку і жили фіксуємо скотчем.

На цьому етапі ми маємо панель з двома надтонкими жилами які виходять з неї. Можна паятись до плати і має працювати.
Якщо не працює - варіанти звісно два, або платою не генерується напруга або щось не так з панеллю.
Плату перевірити легко - звичайним мульмиметром в режимі вимірювання змінної напруги поміряти між EL1 та EL2. Має бути приблизно 90 вольт змінного струму.
Якщо напруга є - проблема в панелі.

Інструменти та розхідники

Мені дуже допомогла в пайці така прикольна паяльна станція:
https://www.aliexpress.us/item/1005005609080807.html

На етапі налагодження може допомогти такий QFN56 Breakout Board який підійде для ESP32-S2 (нагадую, там корпус QFN56)
https://www.aliexpress.us/item/1005002805132028.html

Uretan 71
Для покриття плат лаком я використовував таку штуку як Uretan 71. Наносив за допомогою маленького пензля в два шари.

Інструменти, які я використовував при проектуванні:

  • Проектування плати та схеми: KiCad 7.0.9;
  • Формування BOM: bom_csv_grouped_by_value_with_fp.py (розташований в папці Board);
  • Програмування: Arduino IDE 2.2.1 + комплект бібліотек в папці Firmware\Libs;
  • Розширення плати: esp32 by Espressif v2.0.15, ESP32-S2 (В списку плат оберіть "Lolin S2 Mini");
  • Конвертування іконок: Програма LCD Assistant. (Виберіть Horizontal).

Прошивка

Прошивка написана в Arduino IDE 2.2.1 з використанням розширення плат esp32 by Espressif v2.0.15, ESP32-S2, компілювати треба під плату Lolin S2 Mini.
Кожен режим в прошивці (поточний екран, mode) - це комплект функцій які займаються відмальовуванням екрану та обробкою кнопок. Кожен режим може робити по суті що завгодно.
Основний спосіб навігації в прошивці це Runnable modeSetup, modeLoop, modeButtonUp, modeButtonCenter, modeButtonDown, modeButtonUpLong, modeButtonCenterLong, modeButtonDownLong.
Ці змінні в кожен момент часу містять посилання на функції які відповідають поточному режиму (екрану). Коли потрібно перемкнути режим (поточний екран), функція modeSetup відновідного режиму має перезаписати ці посилання, і відновідно loop викликатиметься вже інший, малюватиметься інша інфа, користувач бачитиме інший екран та взаємодіятиме з ним.

Як скомпілювати прошивку

  • Скачати VSCode (В у мене 1.89.1) https://code.visualstudio.com/docs/?dv=win64user
  • Встановити розширення PlatformIO (у мене Core 6.1.15·Home 3.4.4)
    Extensions -> в пошук "PlatformIO IDE" -> Install
  • Встановити платформу Espressif 32 (у мене Core 6.6.0) PlatformIO Home (Відкривається при запуску) -> бокове меню Platforms -> Emnedded -> в пошук "Espressif 32" -> Install
  • Відкрити проект Firmware\DRM Watch 3 PlatformIO Home (Відкривається при запуску) -> Open Project -> знайти і обрати папку "Firmware\DRM Watch 3"

Як додати іконку і використати її в меню

Загалом послідовність така:

  • Мати іконку 24х24 пікселі, зберегти її в форматі монохромному BMP форматі;
  • Відкрити програму LCDAssistant.exe.
  • Load Image - Обираємо монохромний BMP файл. Файл відкривається, бачимо що показується правильно.
  • Byte orientation обираємо Horizontal.
  • Save Output - обираємо текстовий файл куди збережемо код.
  • Код вставляємо в файл Icons.ino (можна звісно інший, але в цьому проекті так прийнято).
  • Формуємо для іконки draw_ функцію за прикладом інших іконок.
  • Вставляємо нашу draw_ функцію в відображення меню.
  • Готово. Компілюємо і має працювати.

Відео як це зробити:
(відео таке трішки простеньке, але суть передає)
https://www.youtube.com/watch?v=P4BCf7cneI8

Як додати до прошивки свою мелодію:

  1. Знайти мелодію. Це має бути midi файл у якого один із інструментів має містити мелодію повністю. Я для пошуку мелодій використовую сайт https://onlinesequencer.net/sequences . Там же можна підправити мелодію щоб вона краще підійшла для годинника.
  2. Конвертувати мелодію в формат мелодій годинника. Для цього я дещо модифікував інструмент від ShivamJoker, який тепер генерує мій формат мелодій. Конвертер знаходиться в папці Software\MIDI-to-Arduino-main. Для його роботи встановіть NodeJS собі на комп.
  3. В файлі MelodyPlayer.ini додаємо масив даних мелодії в файл а також додаємо мелодію та її ім'я до масиву melodies.
  4. Цього має бути достатньо. Компілюємо прошивку і має з'явитись нова мелодія.

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

Я записав відео процесу додавання мелодії:
https://www.youtube.com/watch?v=u_XPCM6kgQM

Формат масиву:

  • Додатнє число - частота в Гц який потрібно вітворити
  • Від'ємне число - час, скільки треба тримати частоту. Від'ємне число після частоти - тривалість частоти. Якщо від'ємних кілька підряд то це паузи.
  • 19 - ідентифікатор кінця мелодії. Його треба ставити обов'язково бо система почне відтворювати сміття із оперативки.

Відомі конфлікти між бібліотеками або пінами

  • Temperature measurement is hanging system if after Wi-Fi usage it were not initialized.
  • Pin D17 - Stays ON when firmware update
  • Pin D31 - Used for flash communication
  • Pin D32 - Used for flash communication

Процес маркування металевого корпусу:

https://youtube.com/shorts/PZIMB8fdEP8?si=xofTaj4oOFBRnQQU

Посилання на ресурси

##Історія проекту

  • 2023 рік, я десь наткнувся на відео про sharp memory lcd зрозумів, що дуже хочу собі такий дисплей. Замовив на алі.