Подключение альтернативного аккумулятора к Сяокату

Форум / Электротранспорт / Электросамокаты / Xiaomi Mijia Electric Scooter / Подключение альтернативного аккумулятора к Сяокату
#аккумулятор
#модернизация
+
Форум / Электротранспорт / Электросамокаты / Xiaomi Mijia Electric Scooter / Подключение альтернативного аккумулятора к Сяокату
Открыть шапку темы
Немец
Новичок
Немец
21 september 2018, 4:08
Posted: 21 september 2018, 4:08

Блин! Только сейчас рассмотрел, что этот раздел привязан к  Xiaomi Mijia. То есть, к моему CURRUS DE-2000 никакого отношения не имеет. Виноват! Прошу простить чайника, впервые влезшего на этот полезный ресурс.  :-(

Markus193
Участник
Rating: 32
Markus193
21 september 2018, 6:52
Posted: 21 september 2018, 6:52
Ответ пользователю
Немец : 21 september 2018, 4:05
на это сообщение (развернуть)

Благодарю, за доброе пожелание! Я вам честно рассказал то, что имею. И честно признаюсь: я понятия не имею- что такое есть "мосфеты"(ч). Я- чайник, умеющий только воткнуть зарядку в правильное гнездо и ни в коем случае не применять второй блок зарядного устройства, для ускоренной зарядки, 2-х часовой, как номинируется. Красная лампочка тухнет... загорается зеленая... всё!  Результат мною описан выше: 59,6 Вольта, в течение пяти месяцев, с пробегом 4100 км, при условиях езды почти всегда на максимуме. А вот как мне вести себя, с батарейным блоком, при уходе на 3-х месячный контракт, я не спросил, о чем жалею. Может быть вы знаете? То есть- есть ли необходимость в ежемесячной подзарядке, например? Или- можно просто оставить? Заранее благодарю.

За 3 месяца батарее ничего не будет,зарядить и забыть

Чебуратор
Почетный форумчанин
Санкт-ПетербургRating: 1432
Чебуратор
21 september 2018, 7:42
Posted: 21 september 2018, 7:42
Ответ пользователю
Markus193 : 21 september 2018, 6:52
на это сообщение (развернуть)

За 3 месяца батарее ничего не будет,зарядить и забыть

Ну если вы хотите ускорить деградацию батареи, то можно зарядить и забыть. Правильно если батарея, на время хранения, будет заряжена на 40 - 60% (3,6 - 3,7 вольт на один аккумулятор), тогда её деградация не будет превышать 10 - 12% ёмкости в год.

Немец
Новичок
Немец
21 september 2018, 9:51
Posted: 21 september 2018, 9:51
Ответ пользователю
Чебуратор : 21 september 2018, 7:42
на это сообщение (развернуть)

Ну если вы хотите ускорить деградацию батареи, то можно зарядить и забыть. Правильно если батарея, на время хранения, будет заряжена на 40 - 60% (3,6 - 3,7 вольт на один аккумулятор), тогда её деградация не будет превышать 10 - 12% ёмкости в год.

Ага! Понял. Благодарю вас. Таки не зря я влез на этот, очень полезный ресурс! Я- отработаю, у меня есть кое-какие идеи... :-)

alex9k
Участник
МоскваRating: 42
alex9k
21 september 2018, 10:26
Posted: 21 september 2018, 10:26
Ответ пользователю
Gennadiy : 12 june 2018, 1:11
на это сообщение (развернуть)

Собрал таки внешнюю батарею 12S5P. Присобачил индикатор напряжения с али, показывает обычные "палочки" и %.

Настраивается одной скрытой кнопочкой под разные сборки ( S ) К сожалению, по асфальту потестить не удалось,

на даче пока живу, но по подбитой асфальтной крошке и по полям с не сильно укатанными тропами проехал 7 км. Индикатор показал остаток 81 % , что для моего веса 90 +батарея 3 кг+ седло 3 кг - считаю, что не плохо. Да, на заднее

поставил 10", давление 35 пси, более пока боюсь качать. Указана максимум 28 пси ( 1069-01 ).

Индикатор проверил - при 36 вольтах показывает 0%, 38 - 13% , далее блок питания не позволил прогнать. В итоге, условно можно верить, но уточнять буду при полном прогоне батареи.

Индикатор брал тут : https://ru.aliexpress.com/item/12V-LY6W-Lead-Acid-Battery-Capacity-Indicator-LCD-Digital-Display-Meter-LiPo-Battery-Capacity-Power-Detection/32748498834.html?spm=a2g0s.13010208.99999999.261.1ebd3c00Xiqc3i


Для батареи заказывал аналог родных LG M26 - 60 штук , и БМС на 12S :

https://ru.aliexpress.com/item/12S-40A-lipo-lithium-Polymer-BMS-PCM-PCB-battery-protection-circuit-board-for-12-Packs-18650/32707886127.html?spm=a2g0s.9042311.0.0.2c6333edWhLwcG;

 П.С. Прошивка "конструкторская" , на основе 1.3.4. , мощность выставил 42000.

А какой размер сумки на гуся брали?

Janabr23
Новичок
Janabr23
03 october 2018, 20:06
Posted: 03 october 2018, 20:06

U menja nachinaet umiratj batareja na xiaomi, mozhno prosto obojtisj BMS obmankoj, kak na youtube odin rasskazivaet, i prosto novoj batareej. Mne ochenj udobno na mojom skootere katatsa i hochetsa ego ozhivitj. Rebjata,chto posovetuete? :) 

Денис Юрьев
Новичок
МоскваRating: 9
Денис Юрьев
08 october 2018, 4:13
Posted: 08 october 2018, 4:13

Посоветуем обратиться в мастерскую Толяна или Листа. И батку новую соберут, и все нужные обманки поставят)

Conejo
Форумчанин
МадридRating: 309
Conejo
16 october 2018, 11:09
Posted: 16 october 2018, 11:09

Тест родной BMS в качестве обманки. Вместо ячеек напаяны последовательно (так же лесенкой, как были ячейки) резисторы 1кОм, на концы подано внешнее питание (в данном случае от БП, но с таким же успехом это была бы неродная батарея). Всё работает, в контроллер транслируются реальные значения напряжения/тока (да и ёмкость по идее нормально должна вычисляться на их основе) и красивые почти одинаковые обманные напряжения на ячейках, полученные делением внешнего напряжения на 10.


Естественно, всё это (обманные резисторы, родные термистор, предохранитель, кабель стоп-сигнала) можно припаять более компактно прямо к плате BMS.


 1   
Xela
Участник
Rating: 35
Xela
18 november 2018, 19:19
Posted: 18 november 2018, 19:19

Я не очень понял все что нужно было поправить. Сделал как смог. Если кто разбирается поправьте меня. Сборка на 10s4p

Код:

/*****************************
  
Эмулятор BMS (обманка) для Xiaomi Scooter M365
с измерением напряжения и тока батареи, с измерением температуры по двум датчикам, с вычислением уровня заряда.
Обсуждение:
https://electro.club/forum/podklyuchenie_alternativnogo_akkumulyatora_k_syaokatu

!!!скетч для платы на базе ATMega32U4.
!!!для ATMega328 (у которой нет USB):  1. необходимо удалить из скетча все  что касается Serial, после чего  заменить Serial1 на Serial.  2. напряжение опорного источника 2.56 заменить на 1.1 (для встроенного) или на 5 (для ИОН "по-умолчанию" = +Uпит)
******************************/
//Назначение аналоговых входов const int adc_Vpin = A5;  // назначаем вход АЦП для напряжения шины батареи (через делитель r1/r2) //const int adc_Apin = A3;  // для датчика тока const int adc_V5pin = A1;  // для напряжения +5В (шина питания контроллера) const int adc_T1pin = A0;  // для для датчика температуры 1 (с подтягиванием термистора к шине +5В через Резистор Rth) const int adc_T2pin = A2;  // для для датчика температуры 2
float ref = 2.1; //напряжение используемого опорного источника, В. Встроенный для ATMega32U4 = 2.56 или для ATMega328 = 1.1

float voltage; //действующее напряжение float voltageAvg; //сглаженное напряжение int charge; unsigned int crc; //контрольная сумма
int k = 1;  //начальный коэффициент сглаживания (ускоряет выход на действущее значение при старте) int ku = 10; //постоянный коэффициент сглаживания значений напряжения
//делитель напряжения для АЦП (в канале измерения напряжения батареи): unsigned int r1 = 10000; //верхний кОм (Rbat1) unsigned int r2 = 510; //нижний,кОм (Rbat2) //  Делитель 10мОм / 470-510 кОм при REF=2.56 или 13 МОм / 270 кОм при REF=1.1В  - оптимально для измерения батареи 12S
//Температура int B = 3950; // параметр B термистора (из описания или опытным путем) long R25 = 10000; //сопротивление термодатчика при 25°С, Ом long Rth = 68000; //сопротивление верхнего резистора делителя, Ом  (Rth1, Rth2) //подтягивающий резистор 68 кОм при REF=2.56 или 270 кОм при REF=1.1В
long avg_temp1_adc; long avg_temp2_adc; long avg_u5_adc; //среднее напряжение на шине питания микроконтроллера (через делитель на 2)

//Батарейка unsigned int capacity = 12000; //емкость батареи unsigned int s = 10; //элементов в батарее последовательно
//напряжение (В) на батарее при уровне заряда  (напряжение на 1 элементе * 100 * кол-во элементов последовательно) unsigned int v0 = 2.50 * 100 * s;   // 0% unsigned int v5 = 2.85 * 100 * s;   // 5% unsigned int v10 = 3.10 * 100 * s;  // 10% unsigned int v20 = 3.33 * 100 * s;  // 20% unsigned int v30 = 3.48 * 100 * s;  // 30% unsigned int v90 = 4.02 * 100 * s;  // 90% unsigned int v100 = 4.15 * 100 * s; // 100%
//Для тока signed int current = 0; signed int currentSens = 100;  //чувствительность аналогового датчика тока (мВ/А), для ASC712-20A это 100 мВ/А // signed int currentZiro = 480; //середина АЦП для 0 тока (выше положительный ток, ниже отрицательный ток). Теперь через avg_u5_adc / 2
//Для компенсации значений напряжения под нагрузкой (по току) float resistance = 0.2; //внутреннее сопротивление батареи и проводов, Ом
//буферы для статичных данных byte buf_1B[]= {85,170,6,37,1,27,1,0,1,0,182,255}; byte buf_20[]= {85,170,8,37,1,32,33,36,0,0,0,0,108,255}; byte buf_3B[]= {85,170,4,37,1,59,98,0,56,255};

void setup() {   analogReference(INTERNAL); //используем внутренний опорник (будет 2.56V для Mega32U4 или 1.1V для Mega328)
  Serial.begin(9600);   Serial1.begin(115200); }

signed int tempmath(long avg_temp_adc) {  //функция вычисления температуры   float Rt = avg_temp_adc * Rth / (2.0 * avg_u5_adc - avg_temp_adc); //вычисление сопротивления термистора   float temp = 1.0 / ( log(Rt/R25) / B + 1.0/298 ) - 273; // температура по мнению Стейнхарта и Харта   if (temp < -20) {       return -20; //чтобы не испугать самокат   } else {     return round (temp); //округляем до целого и отдаем градусы Цельсия   } }
void loop() {   //измеряем температуру по двум датчикам и напряжение на шине питания микроконтроллера (для компенсации измерения)   avg_temp1_adc = avg_temp1_adc - (avg_temp1_adc - analogRead(adc_T1pin)) / 3;  //сглаженное значение АЦП для температуры 1   avg_temp2_adc = avg_temp2_adc - (avg_temp2_adc - analogRead(adc_T2pin)) / 3;  //сглаженное значение АЦП для температуры 2   avg_u5_adc = avg_u5_adc - (avg_u5_adc - analogRead(adc_V5pin)) / 3;   //сглаженное значение АЦП для напряжения шины +5В      byte temp1 = tempmath(avg_temp1_adc) + 20; //температура 1   byte temp2 = tempmath(avg_temp2_adc) + 20; //температура 2         //измеренное напряжение батареи   voltage = ( analogRead(adc_Vpin) * ref / 1023.0 ) * ((r1 + r2) / r2) * 100 ; //с учетом входного делителя и множителя 100      //измеренный ток батареи   //current = (( analogRead(adc_Apin) - avg_u5_adc / 2 ) * ref / 1023 ) * 200000 / currentSens ; //с учетом входного делителя (/2) и множителя 100   current = 0   //компенсируем потери напряжения на проводах и внутреннем сопротивлении батареи под нагрузкой   voltage = voltage + resistance * current ;
  //сглаживаем напряжение батареи   voltageAvg = voltageAvg - ( voltageAvg - voltage ) / k;   if (k < ku) k++;  //постепенно увеличиваем время сглаживания до заданного, чтобы быстрее получить правильное значение на старте       //уровень заряда % с линеаризацией   if (voltageAvg <= v0) charge = 0;   if (v0 < voltageAvg && voltageAvg <= v5) charge = 0 + ( 5 - 0 ) * (voltageAvg - v0) / (v5 - v0) ;   if (v5 < voltageAvg && voltageAvg <= v10) charge = 5 + ( 10 - 5 ) * (voltageAvg - v5) / (v10 - v5);   if (v10 < voltageAvg && voltageAvg <= v20) charge = 10 + ( 20 - 10 ) * (voltageAvg - v10) / (v20 - v10);   if (v20 < voltageAvg && voltageAvg <= v30) charge = 20 + ( 30 - 20 ) * (voltageAvg - v20) / (v30 - v20);   if (v30 < voltageAvg && voltageAvg <= v90) charge = 30 + ( 90 - 30 ) * (voltageAvg - v30) / (v90 - v30);   if (v90 < voltageAvg && voltageAvg <= v100) charge = 90 + ( 100 - 90 ) * (voltageAvg - v90) / (v100 - v90);   if (voltageAvg > v100) charge = 100;      unsigned int voltageBat = voltageAvg; //забираем два байта от сглаженного напряжения      unsigned int capacityRem = capacity / 100 * charge;  //вычисляем остаток емкости батареи, мАч   
   //буфер для 31   crc = 0xFFFF - 12 - 0x25 - 0x01 - 0x31 -    lowByte(capacityRem) - highByte(capacityRem) -    lowByte(charge) - highByte(charge) -   lowByte(current) - highByte(current) -   lowByte(voltageBat) - highByte(voltageBat) -    temp1 - temp2;      byte buf_31[]= {0x55,0xAA,12,0x25,0x01,0x31,   lowByte(capacityRem), highByte(capacityRem),   lowByte(charge),highByte(charge),   lowByte(current),highByte(current),   lowByte(voltageBat),highByte(voltageBat),   temp1,temp2,   lowByte(crc),highByte(crc)};    //буфер для 30     crc = 0xFFFF - 14 - 0x25 - 0x01 - 0x30 - 0x01 -    lowByte(capacityRem) - highByte(capacityRem) -    lowByte(charge) - highByte(charge) -   lowByte(current) - highByte(current) -   lowByte(voltageBat) - highByte(voltageBat) -    temp1 - temp2;      byte buf_30[]= {0x55,0xAA,14,0x25,0x01,0x30,0x01,0x00,   lowByte(capacityRem), highByte(capacityRem),   lowByte(charge),highByte(charge),   lowByte(current),highByte(current),   lowByte(voltageBat),highByte(voltageBat),   temp1,temp2,   lowByte(crc),highByte(crc)};    //буфер для 10(12). серийник и емкость для приложения   crc = 0xFFFF - 20 - 0x25 - 0x01 - 0x10 -  'E' - 'L' - 'E' - 'C' - 'T' - 'R' - 'O' - '.' - 'C' - 'L' - 'U' - 'B' - ' ' - ' '  -   0x15 - 0x01 - lowByte(capacity) - highByte(capacity);   byte buf_1012[]= {0x55,0xAA,20,0x25,0x01,0x10,   ' ',' ','E','L','E','C','T','R','O','.','C','L','U','B',   0x15,0x01,   lowByte(capacity),highByte(capacity),   lowByte(crc),highByte(crc)};      //буфер для 10(10) серийник для контроллера   crc = 0xFFFF - 18 - 0x25 - 0x01 - 0x10 -  'E' - 'L' - 'E' - 'C' - 'T' - 'R' - 'O' - '.' - 'C' - 'L' - 'U' - 'B' - ' ' - ' '  -   0x15 - 0x01;   byte buf_1010[]= {0x55,0xAA,18,0x25,0x01,0x10,  ' ',' ','E','L','E','C','T','R','O','.','C','L','U','B',   0x15,0x01,   lowByte(crc),highByte(crc)};      unsigned int cell = voltageBat * 10 / s; //примерное напряжение на одном элементе *1000      //буфер для 40. напряжение на ячейках   crc = 0xFFFF - 32 - 0x25 - 0x01 - 0x40 - 15 * (lowByte(cell) + highByte(cell));   byte buf_40[]= {0x55,0xAA,32,0x25,0x01,0x40,   lowByte(cell),highByte(cell),   lowByte(cell),highByte(cell),   lowByte(cell),highByte(cell),   lowByte(cell),highByte(cell),   lowByte(cell),highByte(cell),   lowByte(cell),highByte(cell),   lowByte(cell),highByte(cell),   lowByte(cell),highByte(cell),   lowByte(cell),highByte(cell),   lowByte(cell),highByte(cell),   lowByte(cell),highByte(cell),   lowByte(cell),highByte(cell),   lowByte(cell),highByte(cell),   lowByte(cell),highByte(cell),   lowByte(cell),highByte(cell),   lowByte(crc),highByte(crc)};      //сливаем в UART контроллеру   Serial1.write(buf_1010,24); //серийник для контроллера   delay(5);   Serial1.write(buf_1012,26); //серийник   delay(5);   Serial1.write(buf_30,20); //статус батареи для контроллера   delay(5);   Serial1.write(buf_31,18); //напряжение и заряд для приложения   delay(5);   Serial1.write(buf_1B,12); //циклы заряда   delay(5);   Serial1.write(buf_20,14); //дата выпуска   delay(5);   Serial1.write(buf_40,38); //ячейки   delay(5);   Serial1.write(buf_3B,10); //пинг        //сливаем в USB   Serial.print("T1 = ");   Serial.print(temp1);   Serial.print(" T2 = ");   Serial.println(temp2);

  delay(80); }
 


 1     2     4   
xek
Новичок
Москва
xek
30 november 2018, 11:43
Posted: 30 november 2018, 11:43

Подскажите, а никто не поделится моделью днища сяоката в виде чертежа/3д-модели?

Хочу попробовать помоделировать сколько банок влазит

Vladimir Lavrulin
Генератор лайков
МоскваRating: 3556
Vladimir Lavrulin
30 november 2018, 11:45
Posted: 30 november 2018, 11:45
Ответ пользователю
xek : 30 november 2018, 11:43
на это сообщение (развернуть)
Подскажите, а никто не поделится моделью днища сяоката в виде чертежа/3д-модели?Хочу попробовать...

Подскажите, а никто не поделится моделью днища сяоката в виде чертежа/3д-модели?

Хочу попробовать помоделировать сколько банок влазит

Есть крышка днища:
https://electro.club/wiki/161

Самой деки целиком пока не видел.

 1   
oska
Продвинутый форумчанин
МоскваRating: 924
oska
30 november 2018, 11:47
Posted: 30 november 2018, 11:47
Ответ пользователю
xek : 30 november 2018, 11:43
на это сообщение (развернуть)
Подскажите, а никто не поделится моделью днища сяоката в виде чертежа/3д-модели?Хочу попробовать...

Подскажите, а никто не поделится моделью днища сяоката в виде чертежа/3д-модели?

Хочу попробовать помоделировать сколько банок влазит

Это уже делали многие, описывали здесь на форуме с фотографиями. И ездят второй сезон.. Реально влезает 50 или 60, но придётся делать проставку для крышки, так как они будут выпирать. 

xek
Новичок
Москва
xek
30 november 2018, 11:49
Posted: 30 november 2018, 11:49
Ответ пользователю
oska : 30 november 2018, 11:47
на это сообщение (развернуть)
Это уже делали многие, описывали здесь на форуме с фотографиями. И ездят второй сезон.. Реально влезает 50 или...

Это уже делали многие, описывали здесь на форуме с фотографиями. И ездят второй сезон.. Реально влезает 50 или 60, но придётся делать проставку для крышки, так как они будут выпирать. 

За чертеж днища — спаисбо.

А нет именно чертежа или модели где указаны штатные посадочные под батарею? Хочу сделать каркас который садится в штатные посадочные места...

Taxist
30 november 2018, 13:23
Posted: 30 november 2018, 13:23

зачем делать целую крышку? лучше сделать проставку 5 мм из фанеры, шлифануть торец и покрасить. влезит 60 штук и контроллер, это проверено.

 1   
SurgeSPB
Участник
Rating: 40
SurgeSPB
07 december 2018, 14:39
Posted: 07 december 2018, 14:39

@Conejo для приема инфы от ESC в сторону BMS достаточно просто соединиться rx-tx tx-rx? Хочу перейти к диалоговому типу обманки. У меня весь код влез в 3кб, куча места еще.

Оформляю BOM и доки к релизу на гитхаб

Conejo
Форумчанин
МадридRating: 309
Conejo
07 december 2018, 15:30
Posted: 07 december 2018, 15:30
Ответ пользователю
SurgeSPB : 07 december 2018, 14:39
на это сообщение (развернуть)
@Conejo для приема инфы от ESC в сторону BMS достаточно просто соединиться rx-tx tx-rx? Хочу перейти к диалоговому типу...

@Conejo для приема инфы от ESC в сторону BMS достаточно просто соединиться rx-tx tx-rx? Хочу перейти к диалоговому типу обманки. У меня весь код влез в 3кб, куча места еще.

Оформляю BOM и доки к релизу на гитхаб

Да, rx-tx, tx-rx, принимаем-отвечаем. Вот работающий пример: https://github.com/BotoX/xiaomi-m365-compatible-bms - это заливается прямо в китайскую smart BMS (там есть ссылки на её продажу) и она начинает работать по протоколу Xiaomi. В принципе, если этот проект чуть доработать (для корректной работы рекуперации завести в статус бит OV от BQ и саму BMS подключить под раздельный заряд/разряд - это всё минимум изменений), вышел бы вообще отличный вариант. Всё равно же какую-то защиту на батарею ставят и когда с обманкой делают? Или всё лихо напрямую? :)

SurgeSPB
Участник
Rating: 40
SurgeSPB
07 december 2018, 16:36
Posted: 07 december 2018, 16:36
Ответ пользователю
Conejo : 07 december 2018, 15:30
на это сообщение (развернуть)
Да, rx-tx, tx-rx, принимаем-отвечаем. Вот работающий пример: https://github.com/BotoX/xiaomi-m365-compatible-bms - это заливается прямо в...

Да, rx-tx, tx-rx, принимаем-отвечаем. Вот работающий пример: https://github.com/BotoX/xiaomi-m365-compatible-bms - это заливается прямо в китайскую smart BMS (там есть ссылки на её продажу) и она начинает работать по протоколу Xiaomi. В принципе, если этот проект чуть доработать (для корректной работы рекуперации завести в статус бит OV от BQ и саму BMS подключить под раздельный заряд/разряд - это всё минимум изменений), вышел бы вообще отличный вариант. Всё равно же какую-то защиту на батарею ставят и когда с обманкой делают? Или всё лихо напрямую? :)

Бэлин, а я уже свою версию дописывал. Оказывается уже есть готовый варик.

Ладно, сконцентрируюсь на оформлении документации по обманкам.

А по защите - как есть ставится. Иной раз конечно прилетают приветы, даже с обманками полностью эмулирующими обмен, но это скорее косяк прошивки 1.3.0, именно на ней 80% проблем

Ivan 100KWT
Коммерческий представитель
МоскваRating: 105
Ivan 100KWT
07 december 2018, 17:04
Posted: 07 december 2018, 17:04
Ответ пользователю
Taxist : 30 november 2018, 13:23
на это сообщение (развернуть)
зачем делать целую крышку? лучше сделать проставку 5 мм из фанеры, шлифануть торец и покрасить. влезит 60 штук...

зачем делать целую крышку? лучше сделать проставку 5 мм из фанеры, шлифануть торец и покрасить. влезит 60 штук и контроллер, это проверено.

10мм тогда точно влезет*

Conejo
Форумчанин
МадридRating: 309
Conejo
07 december 2018, 18:04
Posted: 07 december 2018, 18:04
Ответ пользователю
SurgeSPB : 07 december 2018, 16:36
на это сообщение (развернуть)
Бэлин, а я уже свою версию дописывал. Оказывается уже есть готовый варик.Ладно, сконцентрируюсь на...

Бэлин, а я уже свою версию дописывал. Оказывается уже есть готовый варик.

Ладно, сконцентрируюсь на оформлении документации по обманкам.

А по защите - как есть ставится. Иной раз конечно прилетают приветы, даже с обманками полностью эмулирующими обмен, но это скорее косяк прошивки 1.3.0, именно на ней 80% проблем

C 1.3.0 контроллеры горят вполне успешно и с родными батареями :)

А существующие обманки от этого не особо помогут, контроллеру на самом деле большинство параметров батареи, приходящих из BMS, вообще не интересны. Реально на что-то влияют только процент заряда (по нему решает когда снизить мощность) и статус (бит OV даёт обратную связь алгоритму рекуперации, ну и ошибки/режим зарядки там же), остальное - "показометры" (включая напряжения и токи, контроллер их "у себя" измеряет).

 1   
Leo
Легенда Клуба
МоскваRating: 1213
Leo
07 december 2018, 20:25
Posted: 07 december 2018, 20:25
Ответ пользователю
xek : 30 november 2018, 11:43
на это сообщение (развернуть)
Подскажите, а никто не поделится моделью днища сяоката в виде чертежа/3д-модели?Хочу попробовать...

Подскажите, а никто не поделится моделью днища сяоката в виде чертежа/3д-модели?

Хочу попробовать помоделировать сколько банок влазит

Для своей 60 баночной батки делал проставку под стоковое днище из детской скакалки: приклеивал ее на крышку моментом в два слоя, потом прикручивал крышку длинными винтами и дополнительно герметил проставку снаружи.

Это самый дешманский вариант. Выглядит достойно, т.к. герметик скрывает весь колхоз )