После приобретения умных часов и дальнейшего погружения в эту среду, я обнаружил непреодолимое желание их модернизировать.
Задачи:
-
АКБ. Часы купил не новые. Присутствует износ АКБ. При этом неделю они работают в режиме смартчасов спокойно. Но, т.к. моя задача подразумевает пробежки в режиме плеера для BT наушников и фитнес трекера с GPS, время работы резко сокращается. Моя пробежка съедает примерно 15-25% старого АКБ. В таких условиях они в лучшем случае вытянут неделю с парой тренировок.
-
Фонарик. Когда начал изучать, а какие интересные новые модели нынче есть на рынке, то увидел замечательную и простую функцию, которую мне бы тоже очень хотелось иметь - фонарик. Это то, что мне нужно, когда я ночью пробегаюсь по участкам парка без освещения.
-
NFC. Огорчило меня то, что есть модуль NFC для оплаты, но все заблокировано и не работает. Можно ли как то оплачивать часами? Это пригодится во время пробежек без телефона и наличных.
Решения:
-
Первым делом взялся за замену АКБ. После вскрытия часов было обнаружено, что свободное место в корпусе имеется. 5 мм в родном АКБ занимает контроллер заряда. Еще 5 мм крадет место под разъем шлейфа АКБ. Итого - если контроллер зарядки перенести в свободный уголок (корпус круглый, а АКБ квадратный, есть свободные углы), а шлейф убрать и запаять проводами напрямую, то есть шанс увеличить АКБ до 30% расчетных.
Сложности:
Купленный аккумулятор (формат 402540), в два раза больше родного по емкости, отказывался влезать.
По высоте - как родной 4мм. По ширине - шире на 1мм, но влезает без зазоров с некоторыми ухищрениями(посадка с натягом). По длине - ну никак. Пару дней я взял на размышление и опыты.
Попробовал несильными проминающими движениями скруглить его торчащие квадратные углы.
По ширине с боков фольгированный корпус имеет завальцовки, которые можно "развернуть" и обрезать лишнее, оставив несколько мм на герметизированный сварной шов, что даст еще 0.5мм для лучшего вхождения. Отпаял от него контроллер заряда.
И вот, почти ! не хватает 0.5-1мм в длину. Было принято решение подшлифовать гравером металлическую крышку и пластиковый корпус (среднюю часть корпуса) что бы получить заветный миллиметр. Нужно было не вышлифовать лишнего и не зайти на зону соприкосновения с силиконовой прокладкой, что бы не потерять герметичность часов.
В целом - запихнуть АКБ в два раза большей емкости оказалось возможным. Но труд кропотливый, рисковый, нужно подтачивать корпус. Проще взять на 5мм меньше в длину - в самый раз и без лишнего геммороя.
Хочу заострить внимание, что обычно в смарт часы пихают литиевый АКБ стандарта 3.8в, который вместо 4.2В способен зарядиться до 4.4В. Это дает доп емкость при том же объеме АКБ (до 10% вроде как). Но, изучая бу рынок и читая про состояние батареек, я сделал вывод, что при штатной зарядке они сильно деградируют буквально за 2-3 года. Существуют ли вообще в природе батарейки 3.8В ? или это просто маркетинг? а деградация за счет превышения номинальных 4.2В зарядки? Мобильник заряжаем каждый день и он живет 3 года. И в часах, с зарядкой раз в пару недель, но до 4.4В, батарейка вдруг умирает за те же 3 года? Странно. К тому же встречал авторитетные мнения, что можно и обычный АКБ зарядить до 4.4В и ничего ему не будет. Может производители именно так и решили поступить, получав больше энергии, в убыток здоровью АКБ ? Кто знает, поделитесь мнением пожалуйста.
Я принял решение впаять контроллер заряда от обычной 4.2В батарейки. Выглядит это так - при зарядке до 4.2 батарейка отключается и статус заряда подскакивает до 100%. При снятии с зарядки степень заряда быстро падает до 90% и начинается реальный расход АКБ. Дольше проживет. Меньше риски.
-
Фонарик
Его в моей версии часов нет. Зато он есть в современных моделях. Вроде бы простая фича и недорогая, а сколько пользы. Условно - часы всегда с тобой, как и фонарик.
Для его использования не надо доставать смартфон, разблокировать его, и отдельная рука, которая держит смартфон, в случае часов с фонариком, обретает доп функционал. Например, что то нести в темноте. Или чинить авто, руки грязные - тут не до тачскринов. Во время пробежек по темным участкам, когда руки держишь перед собой, часы могут осветить дорогу (именно это мне больше всего от них и нужно).
Доступные элементы, которые могут управлять светодиодом - это пьезоизлучатель и вибромотор. Вибромотор оказался доступнее, удобнее, и проще. Не хочу, что бы фонарик издавал звуки. Посмотрев API для SDK Garmin, я узнал, что можно задать скважность на вибромотор в 1% и повторять импульс раз в несколько секунд. Это никак не будет ощущаться рукой, а фонарик будет работать, т.к. короткие импульсы будут успевать зарядит конденсатор на затворе транзистора.
Схема простейшая. Ограничил ток зарядки конденсатора от вибромотора (что бы не навредить управляющим транзисторам). В оригинале надо взять импульс не от АКБ конечно, а с одного из проводов вибромотора. В своей схеме я поставил конденсатор 10мкФ и резистор разрядки на 100К, что дало примерно 1-1.5сек работы диода. Но время работы зависит еще и от скважности и длительности управляющих сигналов, то есть программно возможно управление работой фонариком, в т.ч. мигание.
Интересное наблюдение - питание вибромотора периодически меняет полярность, судя по осциллограмме. Череда прямоугольных импульсов одной полярности, череда другой. Думаю это нужно для использования разного типа вибраторов - в одном случае это моторы постоянного тока, в другом - что то вроде электромагнитов, и ими надо дергать, как динамиком. Здесь и нужна разная полярность. Поэтому для нашей схемы можно брать импульс с любого провода.
Приложение - фонарик
Пришлось создать свое приложение. Для часов Garmin используется язык Monkey C. У меня был некоторый опыт разработки под микроконтроллеры AVR STM32 на Си, что мне помогло.
Код простейший. Но, танцы с бубнами вокруг SDK, среды разработки, что бы оно работало на WIN8 (не устанавливается, перенес файлы с 10ки), затем попытки скомпилировать примеры кода из SDK 8 летней давности, а они не работают, а уже новая ревизия языка, среды, и надо писать чуть чуть иначе, но как ? И это не та ситуация с С, С++, или C#, когда любой глупый вопрос решается в гугле за пару минут, т.к. чужого опыта не так много. Готовые примеры не сработали, чужой опыт есть, но там ничего не понял, надо изучать архитектуру и прочее, что бы разобраться. Вот на это и ушло несколько вечеров поиска и опытов. И не зря, т.к. планирую еще написать кое что полезное (контроль BLE TPMS датчиков авто, мото, вело).
Свое приложение заливается в папку Garmin - Apps, затем оно появляется рядом с виджетами, которые доступны по нажатию кнопки "действие".
Переместил приложение в самый верх списка, после этого двойное нажатие "действие" быстро открывает список и запускает мой фонарик. Запустить свое приложение по горячей клавише вроде как нельзя, или я не нашел (задал вопрос на форуме Гармин). Но удалось хотя бы так выйти из ситуации. Можно выбрать по горячей клавише запустить заводской фонарик. Но в моих часах - это просто белый экран. И освещает он... ничего.
-
NFC. Оплата картой
Как можно хакнуть заводскую систему оплаты Garmin Pay, которая не работает из за санкций ? Наверное, как то можно. Я не крутой программный хакер, извините, если кого то обнадежил.
Но, если не можем хакнуть программно, давайте хакнем аппаратно !)
Сначала, при разборке часов, я оторвал с дисплея какой то маленький двухпроводной шлейф. Подсветка дисплея отдельным шлейфом - подумал я. Оторвался сам коннектор с гибкого шлейфа. Не беда, можно запаять обратно, но подсветка мне пока не была нужна. Может быть потом...
Пока проводил опыты с АКБ, собирал и разбирал часы, в определенный момент понял, что подсветка как бы работает... да и все остальное тоже. Но что я тогда оторвал...? Кроме антенны NFC там ничего больше быть не может.
Погодите ка, а что если не запаивать обратно разъем, а припаять к шлейфу чип из банковской карточки??? Сказано - сделано. Сделано - не работает :D Эх, если бы все было так просто!
Заставить это все работать было не так то просто. Все таки я больше по цифровой технике, а тут уже аналоговые чудеса, катушки, индуктивность, колебательный контур, резонанс... Постараюсь рассказать покороче, но что бы кто то мог повторить нечто подобное при желании. Но получится все равно длинно, извините!
Для начала надо было извлечь чип из банковской карты. Перед этим заказать карту под виртуальный счет оплаты, которым я давно пользуюсь и дождаться, пока ее доставят. Пару карточек ненужных я разобрал - ничего трудного, все чипы продолжают работать, чего я с ними только не делал. Кто то отмачивает карту в ацетоне, я предлагаю просто греть контактную площадку чипа на 100-150 градусов и поддевать ее пинцетом. Она отклеится от карты. А проводки катушки контачат с чипом просто путем прижима. Они останутся внутри карты.
Банковский чип имеет в себе некий конденсатор некой емкости. Антенна NFC (катушка) имеет некую индуктивность. Пара емкость - индуктивность дает резонанс на некоей частоте.
Задача: подобрать параметры системы, что бы резонанс получился на частоте NFC и банковских терминалов 13.56Мгц.
Решение: я пытался высчитать все, но не получилось. Получился подбор и метод тыка. Емкость чипа изменить нельзя. Индуктивность антенны (заводской) тоже (простыми способами). Остается наращивать емкость внешними конденсаторами.
FAQ по резонансу:
-
Катушка на воздухе и катушка внутри металлического корпуса часов - это совершенно разные по индуктивности катушки. Если попал в резонанс на столе, то внутри часов резонанса не будет. Что делать? катушка должна быть внутри часов с закрытыми крышками, вывести провода наружу, подпаять чип и добавлять конденсаторы, пока не попадем в резонанс.
-
Как понять, что попали в резонанс? Можно по дальности сработки телефоном, через приложение NFC Tools. Более удобно щупами осциллографа. Когда колебания в антенне (которая находится над активным NFC Считывателем телефона) достигнут максимума - это резонанс. Увеличение или уменьшение емкости при этом снижает колебания.
-
Щупы осциллографа имеют емкость сотни пикофарад. Емкость нужная для резонанса конкретно у меня получилась 170 пикофарад - добавить к чипу. Подключенный щуп добавляет емкость. Вроде настроил все по осциллографу, отключаешь от осциллографа и резонанс пропал. Что делать? подключить один щуп через конденсатор 1пф последовательно (спасибо за совет от коллеги Андрея!). Амплитуда сильно меньше, но нет влияния на резонанс от осциллографа, результат остается после отключения.
-
Теоретически, чип может иметь любую емкость, зависит от реализации конкретной карты. Антенны в картах тоже разные - то 3 витка, то 6. Возможна ситуация, что для данной антенны в часах емкость конкретного чипа слишком большая. Наращивание емкости конденсаторами только отдаляет нас от резонанса и уменьшает амплитуду. Что делать ? Можно впаивать емкость не параллельно катушке, а последовательно. Тогда чип и эта емкость образуют последовательное соединение конденсаторов, что уменьшает итоговую емкость чипа и приближает нас к резонансу в другую сторону. А далее можно наращивать кондеры в параллель. Но такой подбор емкости усложнен (на мой взгляд), лучше избегать такой антенныкатушки. Да и последовательные конденсаторы разделят между собой амплитуду (мне так кажется) и чип может не стартануть на дальних расстояних.
-
Удобнее всего прикупить конденсатор переменной емкости, или парочку. Крутить отверткой, искать резонанс. Мерять емкость, заменять ее на маленькие керамические конденсаторы.
-
А может оторвать заводскую катушку, намотать свою, да такую, что бы индуктивность подошла к чипу и получился резонанс без всяких конденсаторов?
Я пробовал. Разных размеров, толщин. Дальность сработки всегда хуже, чем у заводской. Наматывать плоские катушки - это боль. Тоньше, чем заводская пленочная вряд ли выйдет. Индуктивность очень сильно зависит от количества витков. Часто нельзя добавить пол витка, что бы попасть в резонанс. Приходится делать целый виток, что бы провод вышел с той же стороны, где зашел. И все равно придется добавлять емкость для точного попадания в резонанс.
Доступное пространство в часах под катушку - где то 0.2-0.4мм. Она выполнена в виде гибкой печатной платы на каптоне (как гибкие шлейфы). Когда мы мотаем самодельную плоскую катушку, один конец всегда оказывается в середине катушки, и что бы его вывести наружу - он должен пройти поверху других витков, как бы удваивая толщину катушки.
А у нас нет свободного пространства. И либо надо провод брать совсем тонкий, либо лучше все таки использовать заводскую катушку, которая изготовлена без утолщений.
Максимальную дальность сработки с телефоном Sony Xperia я получил где то 10-12мм. С телефоном Blackview вообще не срабатывало. Пошел в магазин, проверил часы - сходу не сработало. Пробовал водить по всякому, в каком то месте индикаторный диод терминала начал намекать, что начинает видеть мои часы. В итоге сработка прошла, но на уровне полного геммороя :) такой результат меня не устраивает.
Я уже было хотел забить на эту идею, но один хороший отзывчивый человек мне помог информацией, советами, и наставил на путь истинный. Олег Артамонов @olartamonov
Он поделился со мной интересным документом от NXP про антенны NFC, про согласование, про экранирование ферритом. AN11564 PN7120 Antenna Design and Matching Guide
После изучения документа я узнал, что феррит под антенной как бы экранирует антенну от всего окружающего снизу. Если под антенной металлические части или печатные платы, они будут поглощать излучение на себя и рассеивать полезную мощность в тепло. Если экранировать ферритом антенну, то с этой стороны рассеивание мощности в тепло не происходит. Не то что бы дальность сработки росла, но хотя бы не уменьшается из за металла вокруг.
Далее я заметил, что заводская антенна, кроме тела антенны еще имеет некую черную пленку. Может быть это ферритовый экран? и поэтому самодельные антенны работают на порядок хуже, а заводская дает самый лучший результат?
После обдумывания данного факта, самый лучший результат дала какая то NoName катушка от беспроводной зарядки, которая имеет под собой толстенный феррит в пару миллиметров. Дальность сработки 3-4см вне корпуса часов. Но такую антенну не запихнуть в часы по толщине, как бы не хотелось. Зато проверил теорию экранирования.
Было решено взять 2 заводские катушки от беспроводных зарядок, которые нашлись у моего друга, разрабатывающего беспроводную зарядную составляющую для носимых устройств, отклеить от них тонкий гибкий феррит на 0.1-0.2мм толщиной и наклеить на мою антенну. Вроде как на али есть такие ферритовые наклейки в продаже.
Конечно же, индуктивность изменилась, резонанс пришлось искать заново. Но дальность сработки увеличилась до 18мм!
Отнес в магазин - считывается. Не так круто, как смартфон или карточка, но неплохо! Без геммороя и долгого поиска места на терминале. Такой результат меня устраивает.
Победа!
И даже если часы сядут, будет возможность снять с банкомата деньги, купить что то в магазине во время пробежки, и прочее.
Спасибо за прочтение! буду рад пообщаться в комментариях!
Автор: Ramzez