Вообщем решил создать тему, т.к. в данный момент занимаюсь прошивкой приборки Е34, точнее её раскладыванием по косточкам.
Когда я заморочился поставить эту приборку в Е30 я долго и упорно рыл просторы сети в поисках информации по этой приборке. Была найдена инструкция к прошивке, точнее даже не инструкция а раскладка, где показывалось что в прошивке и за что отвечает.
Первая задача, которая была поставлена - разобраться с бензобаком. Добавочным сопротивлением добиваться требуемого не хотелось т.к. с моей точки зрения это колхоз и не мой это метод ©

Начал разбираться с прошивкой
Вся информация ниже относится к Хай Gen3 приборке (хай синезадая) с чипом-кодером 93С56
В файле вы увидите что бензобак кодируется словом в самом начале прошивки (первые 10 байт). После 20 часов танцев с бубном, экспериментов с приборкой и датчиком была обнаружена следующая зависимость:
1. Сопротивление датчика обратно пропорционально объёму, т.е. чем больше сопротивление тем меньше у нас топлива. Зависимость эта не линейна т.к. бак имеет не правильную форму.
2. Первые два байта кодирующего слова кодируют положение стрелки при полном баке. Т.е. мы говорим приборке первым байтом сопротивление при полном баке а вторым байтом положение стрелки. Если значение второго байт FF, то это значит что стрелка будет лежать на правом крайнем делении. Если шкала уровня топлива у нас размечена до 80л. и бак у нас 80л., то ставим второй байт FF. А вот если у нас бак 55л., то нам надо поставить меньшее значение. Вычисляется оно так: положение стрелки на полную - FF, на пустую - 00. Шкала на 80л. Переводим FF в десятичную систему. Это будет 255. Делим 80 на 255. Получаем 0,3137. Т.е при увеличении второго байта на 1 от значения 00 стрелка будет отображать бензина больше на 0,3137. Далее делим литраж необходимого нам бака на полученное значение: 55 / 0,3137 получаем 175 (округленно). Переводим в HEX, получаем AF. Это есть значение положения стрелки 55л. на нашей шкале 80л. Если разметка шкалы будет на другой литраж, то коэффициент будет другим и соотв. положение стрелки будет отличатся. Если шкала размечена на манер полный-пол бака-пустой то ставим FF, меняем только кодировку сопротивления.
3. Последние два байта кодирую положение стрелки при пустом баке. Допустим из прошивки - E5 00. 00 - это как раз таки положение стрелки на отметке 0 (крайняя левая отметка). Е5 - сопротивление датчика при этом положении. Сопротивление датчика Е30 при пустом баке отличается от сопротивления датчика Е34. Методом нехитрых арифметических операций для датчика Е30 мы получили значение А8.
4. Все байты между первой и последней парой байт кодируют контрольные точки бака. Это сделано для того что сопротивление датчика меняется не линейно в зависимости от объёма заправленного топлива. Бак имеет неправильную форму. Между этими точка зависимость сопротивления от литража примерно линейно.
Для полной корректной настройки прошивки требуется тарировка. Т.е. нужно проливать бак по одному литру от пустого до полного и при этом делать замер сопротивления после каждого залитого литра. Составлять график зависимости и по нему определять контрольные точки. По алгоритму описанному выше рассчитывать контрольные точки сопротивления и положения стрелки.
Задача 2 - тахометр
чуть позже
Задача 3 - расходометр топлива
вроде как нащупал истину.
Поправочный коэффициент кодируется одним байтом в ячейке 23 (по инструкции - модель двигателя)
благодаря Joker были найдены расходы форсунок для двигателей, описанных в инструкции:
М10В18 170.3 / 3бар 4 1
М20В20 6 2
М20В25 6 2
М30В30 191.8 / 3бар 6 2 64
М30В35 191.8 / 3бар 6 2 64 100 01100100
М50В20 154 / 3бар 6 3 6С 108 01101100
М50В25 190.2 / 3.5 6 3 78 120 01111000
М60В30 8 192 11000000
М60В40 8
М70В50 12
S38B36 240.2 / 3бар 6 2 7C 124 01111100
В таблице по столбцам модель двигателя - расход форсунки сс/см - давление регулятора - горшковость - количество управляющих каналов с мозга на форсы (на М50 предполагается что впрыск попарно параллельный, поэтому 3 канала) - значение из инструкции в хексе - оно же в десятичной - оно же в двоичной
Пришел к такому выводу:
Поправочный коэффициент равен расходу форсунки поделенному для М10 на 4 (одновременный впрыск, 1 управляющий канал форсов), для М20, М30, S38 - на 2 (2 управляющих канала, по 3 форсунки на каждом) для М50 - на 1,5 (х.з. почему, но вроде так), для М60 - вообще не делим (ну или делим на 1

), для М70 - тоже ничего не делим. Не забываем округлить полученное значение до целых, перевести его в hex (допустим вот этим онлайн калькулятором:
http://www.subnetonline.com/pages/converters/hex-to-bin-to-dec.php) и забить по нужному нам адресу.
Пы.сы. бортовик данные берёт из этой же ячейки.
Пыпысы. чтоб приборка и бортовик заново считала кодер надо отключить от них питание, покурить

и заново включить
Как говаривал Амаяк Акопян - если не дунуть чуда не произойдёт.
Задача 4: кодировка бензобака для Б.К.
Выкладываю выбранные из описания прошивки калибровочные данные
11 FF 5B B6 A5 74 D6 2D E5 00 80_L_KUNSTSTOFF // 80л пластиковый
9C 64 40 28 10 0C 89 C1 D5 E4 тоже только для Б.К.
0D FF 63 B6 B9 74 D7 2D E5 00 81_L_STAHL //81л стальной
A2 64 50 28 11 0C 9D C2 DE E9 тоже только для Б.К.
0D FF 7C A1 BD 67 D6 28 E5 00 90_L_STAHL
B4 78 50 28 0E 0C 89 C7 DE E9 тоже только для Б.К.
0D FF 6C B8 C2 77 E0 32 F3 00 91_L_STAHL
B6 8C 64 28 10 0C 72 C5 E9 F4 тоже только для Б.К.
0D FF 69 B8 BF 77 DE 32 F3 00 102_L_STAHL
CC 80 64 28 0E 0C A6 CD EB F5 тоже только для Б.К.
11 FF 1D F3 A8 74 D3 34 E1 00 91_L_ZUSATZSTANK_ALPINA
DC A0 50 28 14 11 1D A8 D3 E1 тоже только для Б.К.
Смотрим кодировки бака у Альпины. Первая строка для приборки - каждый нечётный байт это кодирование сопротивления по контрольным точкам от меньшего к большему (от полного бака до пустого). Вторая строка для Б.К. - начиная с шестого байта до десятого видим те же значения. Я так понимаю что это те же значения сопротивления.
Грац, доковырял прошивку по кодировке б.к. Первые пять байт - это литраж, по убыванию. Рассчитывается так: берём нужное нам количество литров, умножаем на 2, переводим в хекс, забиваем в прошивку

Пример: у меня бак 55 литров. Первый байт из строчки - максимальный уровень топлива для Б.К. 55*2=110 перевод в хекс - 6E. Минимальный уровень топлива (когда лампочка загорается) - 6 литров. 6*2=12 (математику надеюсь никто не забыл?). Хекс - 0С. Второй, третий и четвёртый байты - литраж бака в контрольных точках, из за его нелинейности.