Что не так с Cardputer-Adv и как с этим бороться

За время использования 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 мА.

tp4057_prog

Находится он тут:

tp4057_prog

Смело меняем резистор на 2кОм, и получаем ток зарядки в 500 мА. Таких мелких резисторов у меня не было, поэтому впаял в корпусе 0805.

tp4057_res_replace

Необходимость включать устройство во время зарядки

Возможно, не баг, а фича. Чтобы аккумулятор начал заряжаться, нужно передвинуть ползунок питания в положение ON.

С учётом того, что устройство при работе потребляет в среднем 150мА, а ток зарядки 300мА, на заряд остаётся сами понимаете сколько. Чтобы не тратить впустую энергию и не светить экраном, можно при включении зажать G0, ESP32 запустится в режиме Boot и будет мало потреблять.

Русские буквы

Это уже переделка под себя, а не проблема устройства. Техникой слепого ввода я не особо владею.

В прошивке можно выводить какие угодно буквы, однако на наклейках клавиатуры есть только латиница. Готовых решений я не нашёл.

Решение: сделать наклейку с русскими буквами.

Наклейки нарисовал в Inkscape, распечатал на обычной бумаге. С одной стороны наклеил обычный скотч, с другой - двусторонний. Вырезал и приклеил прямо поверх существующих. По хорошему, стоит заказать наклейки на виниле.

ru_stickers_inkscape
ru_stickers

Проект: cardputer_adv_kb_ru.svg (шрифт DejaVu Sans).

Модуль Сap-Lora-1262

К этому модулю у меня много вопросов “почему так?”. Такое ощущение, что его сделали в спешке, не продумав все нюансы.

Разъём RP-SMA

У меня нет ни одной антенны, которая бы подходила к этому разъёму. Все мои антенны с разъёмом SMA.

Решение простое, вскрыть модуль и перепаять разъём. Возможно, и переходника бы хватило, но смысл тогда в этом разъёме?

cap_lora_sma

Необходимость включать радиотракт вручную

На модуле Сap-LoRa-1262 есть расширитель портов PI4IOE.

Чтобы включить радиотракт LoRa-модуля, необходимо установить вывод P0 микросхемы расширителя портов в состояние «высокий уровень». В противном случае FM8625H останется без питания. Для чего это было сделано, мне непонятно.

sw1
sw2

Команды 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();

Невозможность отключить GPS-модуль

Пин ON/OFF у GPS-модуля подтянут к питанию. Поэтому с момента включения GPS начинает работать и кушать заряд. Физически отключить GPS-модуль невозможно.

gps

На расширителе портов у Сap-Lora-1262 7 свободных пинов, почему нельзя было один из них использовать для управления питанием GPS модуля?

Выход, однако, нашёлся. На модуль можно подать команду $PCAS12,65535*1E\r\n и он перейдёт в режим ожидания на 65535 секунд, ток потребления упадёт до минимума. Для выхода из спячки можно использовать hot reboot: $PCAS10,0*1C\r\n.