Авторизация
Регистрация

Напомнить пароль

Софт мод или лечим SkyRc MC3000 для зарядки "уставших" NiMH

Прикупил несколько лет назад зарядное SkyRc MC3000, ну думал перекроет все мои хотелки, оказалось капризным по отношению к зарядке NiMH, «уставшие» аккумуляторы не хочет заряжать, пишет на экране «Connection Break». Поигрался с нею еще несколько раз, да отложил на полку. Продавать жалко, как всегда, через цать лет пригодилось.

Увлекаюсь написанием прошивок для STM32, и что полез глянуть на чем собрана зарядка, аха, STM32. Нашел пятаки для внутрисхемной прошивки, подпаялся, вывел наружу, гребенку распаял под ST-Link на Nucleo. МК залочен. Опять печаль.
Начал копать утилиту обновления прошивки. ИИ помог найти англоязычные форумы, что прошивка лежит в чистом виде внутри утилиты. Далее за несколько часов ИИ помог извлечь прошивку, модифицировать, упаковать назад в утилиту обновления и прошить зарядку.
Шить было страшно, но т.к. встроенный модуль в МК обновления не затирался, можно восстановить из состояния «кирпича»
1. Отключите от зарядного устройства кабель питания и USB-кабель (если они были подключены).
2. Нажмите и удерживайте нажатой кнопку «Enter» на лицевой панели зарядного устройства.
3. Не отпуская кнопку «Enter», подключите кабель питания к устройству.
4. Подключите USB-кабель к компьютеру.
5. Примечание: При этом экран зарядного устройства останется полностью черным (или будет включена только подсветка без вывода текста/иконок) — это нормальное поведение в режиме прошивки.
6. Запустите официальную программу-прошивальщик на компьютере (например, MC3000_Firmware_Update.exe), выберите файл прошивки и нажмите кнопку
Все получилось.
Итак что поменял:
1. ИИ вылечил ее от нежелания заряжать старые акки NiMH.
2. В версии прошивки просил его написать мод, но не влезло, осталась только «1.27_»
Детальное описание от ИИ:
Что мы изменим в прошивке (3 точечных патча)
1. Поднимем потолок скачка напряжения для NiMH/NiCd/Eneloop с 2400 мВ до 3400 мВ (+1500 мВ вместо +500 мВ):
По адресу 0x08005408 инструкцию add.w r0, r0, #0x1f4 (00 f5 fa 70 — прибавить 500 мВ) заменим на add.w r0, r0, #0x5dc (00 f5 96 60 — прибавить 1500 мВ). Теперь порог для NiMH станет 3400 мВ (для лития при этом ничего не изменится — он обходит эту строку). Защита от реального выдергивания батареи из слота (когда напряжение улетает до 5000+ мВ) полностью сохранится.
2. Отключим ложную браковку по высокому сопротивлению (Battery So Poor):
По адресу 0x0800546e инструкцию условного перехода bhs #0x8005474 (01 d2) заменим на безусловный переход b #0x8005474 (01 e0). Зарядка перестанет прерывать цикл с ошибкой Battery So Poor на старых банках с IR > 200 мОм.
3. Расширим таймаут падения тока (0x0800557a):
По адресу 0x0800557a инструкцию cmp r0, #0xfa (лимит 250 тиков при просадке тока, после которого тоже выскакивает Connection Break) заменим на cmp r0, #0xff или пропустим переход bls #0x8005594 (0a d9 -> 0a e0 — безусловный b #0x8005594), чтобы в процессе заряда уставший аккумулятор не отключался по Connection Break.
Все сложил в архив и выгрузил в облако:
cloudbeeline.ru/links/fs/JvuKNsQPRV2ZZRfN2Jhe6g
202 Мб.
Планы на будущее – таким же образом довести до ума зарядку ISDT C4 Evo (вылечить ее от раннего окончания зарядки NiMh, ввести регулировку тока по 10-50 мА, а не по 100 мА).
З.Ы.
Парень с Украины написал неплохую версию программы для ПК, управления зарядкой, MC3000_Studio. Все лежит в архиве.
Добавить в избранное
+1 +2
свернутьразвернуть
Комментарии (1)
RSS
+
avatar
+1
  • Max_1
  • 14 ноября 2026, 14:37
У меня Technoline BC-700. До сих пор пашет, и прошивать не надо.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.