Any general discussion around the firmware, what is does, how it does it etc.
User avatar
By Jaap Struyk
#54556
(SD) logging entry is indeed missing and was never in the code, when using TS one could add an extra channel based on wmiPW showing active table entry and I confirmed that it is working as it should.(despite TS showing active/inactive)

One correction in maincontroller.ini:1207 have to be made to stop tunerstudio accepting values over 100:
Code: Select all
wmiTable      = array,  U08,      0,[8x8],    "%",         1.0,      0.0,   0.0,      100.0,      0
auxiliaries.h:44
Code: Select all
#define WMI_TANK_IS_EMPTY() ((configPage10.wmiEmptyEnabled) ? ((configPage10.wmiEmptyPolarity) ? digitalRead(pinWMIEmpty) : !digitalRead(pinWMIEmpty)) : 0)

looks a bit strange to me, in the original patch I beleive there was a wmiEmpty check inside the main wmi loop but a lot of stuff has changed for speeding up the code so I'am lost ;-)

Apart from the empty check with openloop the code still works as a charm :D
User avatar
By pazi88
#54583
Both of those are now fixed in master and some other things too: https://github.com/noisymime/speeduino/ ... 96cc2730eb

The closed loop mode is still strange. The comment says it uses injector duty and the map then is multiplier on top of that. But the code actually uses injector PW and not duty. Which just leads to overflows. Looks to have been like that always, so I have no idea how that was supposed to work in first place.
User avatar
By Jaap Struyk
#55053
pazi88 wrote: Wed Jan 05, 2022 8:12 am The closed loop mode is still strange. The comment says it uses injector duty and the map then is multiplier on top of that. But the code actually uses injector PW and not duty. Which just leads to overflows. Looks to have been like that always, so I have no idea how that was supposed to work in first place.
Have a more logic approach for that:
Code: Select all
(100/(((max_fuel - inj_dead_time) * max_rpm) / ((inj_pw - inj_dead_time) * current_rpm))) * (get3DTableValue(&wmiTable, currentStatus.MAP, currentStatus.RPM) / 100)
Now the PWM value is related to fuel*rpm*wmi table but to get realistic wmi delivery the PWM value should have at least contain 2 decimals and the connected hardware fast enough. Another approach would be to let the PWM frequency follow rpm frequency to get double the accuracy.
  • 1
  • 7
  • 8
  • 9
  • 10
  • 11
blitzbox

Hi, It seems I can’t blame the error with t[…]

Thank you all for your input. I have managed to g[…]

Working on adding some different wheel definitions[…]

FW 202402 6IGN compile issue

#define BOARD_H "board_avr2560.h&quot[…]

Still can't find what you're looking for?