За время использования Cardputer-Adv я столкнулся с некоторыми проблемами, которые не совсем соответствуют моим ожиданиям от устройства. В этом посте я хочу поделиться своими наблюдениями, решениями и прочими модификациями.
Вот табличка из официальной документации
| Specification | Parameter |
|---|---|
| Operating Current | DC4.2V@120.2mA |
| Wi-Fi Operating Current | DC4.2V@132.3mA |
| BLE Operating Current | DC4.2V@154.6mA |
Минимум потребления, которого я смог добиться - 23мА в режиме глубокого сна и 52мА в режиме лёгкого сна. Естественно, пользоваться устройством в режиме сна не получится, только реагировать на прерывания.
Cardputer-Adv поддерживает зарядку через USB, но максимальный ток зарядки составляет всего 300 мА. При аккумуляторе в 1750 мА·ч зарядка идёт мучительно долго.
За зарядку отвечает микросхема TP4057. Она поддерживает ток зарядки до 500мА, однако в Cardputer-Adv установлен резистор 3.3кОм, ограничивающий ток до 300 мА.
Находится он тут:
Смело меняем резистор на 2кОм, и получаем ток зарядки в 500 мА. Таких мелких резисторов у меня не было, поэтому впаял в корпусе 0805.
Возможно, не баг, а фича. Чтобы аккумулятор начал заряжаться, нужно передвинуть ползунок питания в положение ON.
С учётом того, что устройство при работе потребляет в среднем 150мА, а ток зарядки 300мА, на заряд остаётся сами понимаете сколько. Чтобы не тратить впустую энергию и не светить экраном, можно при включении зажать G0, ESP32 запустится в режиме Boot и будет мало потреблять.
Это уже переделка под себя, а не проблема устройства. Техникой слепого ввода я не особо владею.
В прошивке можно выводить какие угодно буквы, однако на наклейках клавиатуры есть только латиница. Готовых решений я не нашёл.
Решение: сделать наклейку с русскими буквами.
Наклейки нарисовал в Inkscape, распечатал на обычной бумаге. С одной стороны наклеил обычный скотч, с другой - двусторонний. Вырезал и приклеил прямо поверх существующих. По хорошему, стоит заказать наклейки на виниле.
Проект: cardputer_adv_kb_ru.svg (шрифт DejaVu Sans).
К этому модулю у меня много вопросов “почему так?”. Такое ощущение, что его сделали в спешке, не продумав все нюансы.
У меня нет ни одной антенны, которая бы подходила к этому разъёму. Все мои антенны с разъёмом SMA.
Решение простое, вскрыть модуль и перепаять разъём. Возможно, и переходника бы хватило, но смысл тогда в этом разъёме?
На модуле Сap-LoRa-1262 есть расширитель портов PI4IOE.
Чтобы включить радиотракт LoRa-модуля, необходимо установить вывод P0 микросхемы расширителя портов в состояние «высокий уровень». В противном случае FM8625H останется без питания. Для чего это было сделано, мне непонятно.
Команды i2c:
Wire.beginTransmission(0x43); // PI4IOE5V6408ZTAEX Address
Wire.write(0x03); // Direction
Wire.write(0x01); // Output
Wire.endTransmission();
Wire.beginTransmission(0x43);
Wire.write(0x07); // High-impedance
Wire.write(0x00); // Disable high-impedance so pin can actually drive
Wire.endTransmission();
Wire.beginTransmission(0x43);
Wire.write(0x05); // IO set
Wire.write(0x01); // High Level
Wire.endTransmission();Пин ON/OFF у GPS-модуля подтянут к питанию. Поэтому с момента включения GPS начинает работать и кушать заряд. Физически отключить GPS-модуль невозможно.
На расширителе портов у Сap-Lora-1262 7 свободных пинов, почему нельзя было один из них использовать для управления питанием GPS модуля?
Выход, однако, нашёлся. На модуль можно подать команду $PCAS12,65535*1E\r\n и он перейдёт в режим ожидания на 65535 секунд, ток потребления упадёт до минимума. Для выхода из спячки можно использовать hot reboot: $PCAS10,0*1C\r\n.