Z32, knock gauge gone
Moderator: Matt
Z32, knock gauge gone
After installing NIStune I turned on the car but didn't start it and I found my knock gauge in the consult view was all over the place. I used the resistor bypass and was still getting crazy readings, and then I got an error message "knock thread timeout" and from that time the knock gauge has disappeared, nothing happens in the knock warning panel. This is a new OEM knock sensor and subharness, and since this issue I've also replaced the knock board in the ECU. No change.
Re: Z32, knock gauge gone
Hello ..
You have to explain some more ..
There is no working knock detection for the Type2/Z32 ECU.
What exactly is happening?
You have to explain some more ..
There is no working knock detection for the Type2/Z32 ECU.
What exactly is happening?
Re: Z32, knock gauge gone
In the later versions (ie 0.10.x onwards) the code was rewritten to only display 'knock gauge' for those ECUs that it actually works on
So for Z32 I have not found the register to trigger knock counting in Nistune firmware yet to reporting a knock count
Only thing so far for Z32 is if the ECU starts using knock maps I highlight those maps being used
After November when I am on Nistune full time I will put Z32 as part of further investigations
So for Z32 I have not found the register to trigger knock counting in Nistune firmware yet to reporting a knock count
Only thing so far for Z32 is if the ECU starts using knock maps I highlight those maps being used
After November when I am on Nistune full time I will put Z32 as part of further investigations
Re: Z32, knock gauge gone
Hmmmm ...
Could you set up some 'BEEP' or alert to inform Z32 users that the knock maps are used.
(is it ignition or fuel-maps?)
It would be immensely helpful while road-tuning ..
![Smile :)](./images/smilies/icon_smile.gif)
Could you set up some 'BEEP' or alert to inform Z32 users that the knock maps are used.
(is it ignition or fuel-maps?)
It would be immensely helpful while road-tuning ..
![Smile :)](./images/smilies/icon_smile.gif)
Matt wrote:In the later versions (ie 0.10.x onwards) the code was rewritten to only display 'knock gauge' for those ECUs that it actually works on
So for Z32 I have not found the register to trigger knock counting in Nistune firmware yet to reporting a knock count
Only thing so far for Z32 is if the ECU starts using knock maps I highlight those maps being used
After November when I am on Nistune full time I will put Z32 as part of further investigations
Re: Z32, knock gauge gone
Yeah I can add that in
Its independent for both maps. Ie there are separate areas of memory I monitor for each map. In theory they could be independent but so far in practice we see them switch same time (dare say the triggering code just sets both to switch simulatenously)
Its independent for both maps. Ie there are separate areas of memory I monitor for each map. In theory they could be independent but so far in practice we see them switch same time (dare say the triggering code just sets both to switch simulatenously)
Re: Z32, knock gauge gone
How strange, so basically I shouldn't have seen that knock gauge in the first place?
Re: Z32, knock gauge gone
Its partially the reason why I had to do a bunch of changes in the 0.10 versions to separate the consult, wideband and extra gauges. The extras were showing up all the time even when they werent used - causing confusion
Re: Z32, knock gauge gone
All knock related items are disabled (unless the ECU supports them) now (including not showing knock count)
I've added in another tone for switch over to knock maps just now
Knock warning timeout error messages have had the cause found and problem rectified
I've added in another tone for switch over to knock maps just now
Knock warning timeout error messages have had the cause found and problem rectified
Re: Z32, knock gauge gone
Hi Matt,
So we get a BEEP when knock maps are being used/ accessed?
Have you checked this under real world conditions, is it any useful?
Is the switch to knock maps permanent (until on/off) or does the ECU tip-toe in and out?
Also are ignition and fuel knock maps switched simultaneously?
Questions, questions ...
Cheers from London,
Andrew
So we get a BEEP when knock maps are being used/ accessed?
Have you checked this under real world conditions, is it any useful?
Is the switch to knock maps permanent (until on/off) or does the ECU tip-toe in and out?
Also are ignition and fuel knock maps switched simultaneously?
Questions, questions ...
Cheers from London,
Andrew
Re: Z32, knock gauge gone
You will get 3 x hi/low quick tones through the speakers. I've added in a sound class into the latest build which also tones on consult/wideband connect/disconnect
I've checked on the bench so far by triggering the knock sensors and confirmed it changes to knock maps and does the sound. In the vehicle I would need to get my R34 to detonate ...
Knock maps from what I have observed stay switched. They appear to be switched simulateously even though there are separate flags for each one. The tone plays on whichever moves to knock first
I've checked on the bench so far by triggering the knock sensors and confirmed it changes to knock maps and does the sound. In the vehicle I would need to get my R34 to detonate ...
Knock maps from what I have observed stay switched. They appear to be switched simulateously even though there are separate flags for each one. The tone plays on whichever moves to knock first
Re: Z32, knock gauge gone
Exciting!
Can't wait to test this..
Will this release be a major release change then?
Cheers ..
Can't wait to test this..
Will this release be a major release change then?
Cheers ..
Re: Z32, knock gauge gone
Will be 0.11 release initially for beta testing once I iron out some issues that have been introduced ![Confused :?](./images/smilies/icon_confused.gif)
![Confused :?](./images/smilies/icon_confused.gif)
-
- Posts: 426
- Joined: Mon May 11, 2009 7:58 pm
- Location: FRANCE
Re: Z32, knock gauge gone
But before switching definitively to the knock maps, the ECU is going to retard timing, up to 6°, keeping the regular timing map, chasing from 1° to 6° depending on engine conditions. Above 6°, after a while, it goes to knock maps and stays there.
Being informed the ECU starts to retard is the trick, particularly in the 2000-3000rpm/full throttle when TP exceeds a certain value (max torque). This is the area where I always got some furtive knock upon acceleration.
2 variables:
0x1614 is timing retard offset. Regular value is 0. ECU starts to decrease this variable when instantaneous knock occurs, down to 248 max. Later, the value can go up progressively to 255 when knock condition disappears and new acceleration without knock has been done successfully.
0x1610 specifies the threshold to switch to knock map. ECU starts to decrease this variable when knock occurs for a while, when reaching to 248, it switches and stays to knock map. The bit2 in 0x5A is then set to notify the switch to knock map.
0x1610 and 0x1614 are 2 bytes variables. We consider upper byte only.
0x1610 and 0x1614 evolve in parallel.
Being informed the ECU starts to retard is the trick, particularly in the 2000-3000rpm/full throttle when TP exceeds a certain value (max torque). This is the area where I always got some furtive knock upon acceleration.
2 variables:
0x1614 is timing retard offset. Regular value is 0. ECU starts to decrease this variable when instantaneous knock occurs, down to 248 max. Later, the value can go up progressively to 255 when knock condition disappears and new acceleration without knock has been done successfully.
0x1610 specifies the threshold to switch to knock map. ECU starts to decrease this variable when knock occurs for a while, when reaching to 248, it switches and stays to knock map. The bit2 in 0x5A is then set to notify the switch to knock map.
0x1610 and 0x1614 are 2 bytes variables. We consider upper byte only.
0x1610 and 0x1614 evolve in parallel.
Re: Z32, knock gauge gone
Hi,
This sounds very interesting.
So would not 0x1614 be the address to check on knock events? (Matt?)
Also 0x1610 (the map switch threshhold) seems to be an interesting address!
Yes .. I experienced that the ECU reduces timing on the fly, and eventually utilizes the knock maps.
I also think that Eric mentioned a mini map (3 by 3) which sets the RPM range and knock sensitivity?
I still have the 2 knock sensors from the RB25 in parallel to the Z32 ECU. Possibly I should remove on of the sensors?
This sounds very interesting.
So would not 0x1614 be the address to check on knock events? (Matt?)
Also 0x1610 (the map switch threshhold) seems to be an interesting address!
Yes .. I experienced that the ECU reduces timing on the fly, and eventually utilizes the knock maps.
I also think that Eric mentioned a mini map (3 by 3) which sets the RPM range and knock sensitivity?
I still have the 2 knock sensors from the RB25 in parallel to the Z32 ECU. Possibly I should remove on of the sensors?
-
- Posts: 426
- Joined: Mon May 11, 2009 7:58 pm
- Location: FRANCE
Re: Z32, knock gauge gone
FYI, I added some routines in my ECU to switch on the engine warning light in the dash, depending on knock occurrence / car state (idle / gear engaged / gear engaged+throttle). It takes some time to be used to the warning light behaviour but what's important is that it lights up if knock occurs upon acceleration ! Very useful in daily use.
I have other routines for averaging narrow AFR values in a different manner (0x1700/0x1780 tables) to be able to track unwanted lean spots.
Here is the full listing for knock/engine light + special free variables to store occurrence:
I have other routines for averaging narrow AFR values in a different manner (0x1700/0x1780 tables) to be able to track unwanted lean spots.
Here is the full listing for knock/engine light + special free variables to store occurrence:
Code: Select all
flags EQU 0x40
flags6 EQU 0x55
flags10 EQU 0x5A
flags8 EQU 0x82
flags5 EQU 0x8B
port6_copy EQU 0xE0
knock_count EQU 0x14BD
engine_temp EQU 0x140C
timing EQU 0x1443
vq EQU 0x1453 54
rpm EQU 0x140A 0B
maf EQU 0x1408 09
;tp EQU 0x1417 18
tp1 EQU 0x151F 20
timing_offset2 EQU 0x1614 15
knock_value EQU 0x1610 11
afr_const24 EQU 0xFEE7
fb_control EQU 0xFF91
ram2_checksum EQU 0x16A0
word_398 EQU 0x16DE DF
ram2_mid2 EQU 0x16A0
; ************ Variables in ram2_checksum region ***************
base EQU 0x16E8
tp_max EQU 0x16E8
timing_tp_max EQU 0x16E9
rpm_tp_max EQU 0x16EA EB
temp_tp_max EQU 0x16EC
temp_max EQU 0x16ED
kd_tp EQU 0x16F0 save in case of knock detection (highlighted by timing_offset2)
kd_kvalue EQU 0x16F1
kd_rpm EQU 0x16F2 F3
kd_timing EQU 0x16F4
kd_temp EQU 0x16F5
kr_tp EQU 0x16F8 save in case of knock repetitive (highlighted by knock_value)
kr_kvalue EQU 0x16F9
kr_rpm EQU 0x16FA FB
kr_timing EQU 0x16FC
kr_temp EQU 0x16FD
version_save EQU 0x16FF
; Variables shifted in the memory space not covered by ram2_checksum
kd_count EQU 0x169C
kr_count EQU 0x169D
MILstatus EQU 0x169E
toggle_rpm EQU 0x169F
begin_var EQU base
end_var EQU version_save
; ******************************************
main_loop EQU 0xC3FE
org 0x0000
fcb 0xFF dummy
PATCHS
org 0xC0B3 in reset
jmp var_reset
org 0xC0C0 in reset
jmp var_reset
org 0xC43F in main_loop
nop
nop
jsr test
END_PATCHS
org 0xFFFF
fcb 0xFF dummy, just to reach 0xFFFF size
; --------------------------------------------------------------------------------------------------
org 0xE000 for special bin in location #7
var_reset
sei
clr tp_max
clr temp_max
clr kd_count
clr kr_count
cli
nop
clr toggle_rpm for all bins from here
jmp main_loop
; --------------------------------------------------------------------------------------------------
org 0xE200
test
tim %1,flags5 1 if rpm >1000rpm ; bit 1 (high octane if 0) of flags6 is dependent of this flag
bne go_test
check_version
sei
ldaa VERSION+10
cmpa version_save
bne reset_all
cli
rts
reset_all
staa version_save
clra
ldx #begin_var
resetvar
staa 0,x
inx
cpx #end_var keep version intact
bne resetvar
jmp miloff
go_test
ldaa rpm+1
cmpa #240 > 3000rpm ?
bhi rpm_toggle
tst rpm
beq go_on
rpm_toggle
ldaa #1
staa toggle_rpm
go_on
tst toggle_rpm
bne no_clear
clr kd_count clear for each startup
clr kr_count
no_clear
ldaa engine_temp
cmpa temp_max
bls go_on2
staa temp_max
go_on2
sei
ldaa rpm+1
cmpa #160 > 2000rpm ?
bhi tp_test
tst rpm
beq go_on3
tp_test
ldaa tp1
cmpa tp_max
bls go_on3
staa tp_max
ldd rpm
std rpm_tp_max
ldaa timing
staa timing_tp_max
ldaa engine_temp
staa temp_tp_max
go_on3
cli
ldaa flags6 bit0= throttle (1=released) bit1= high octane (if 0) bit2= gear (1= no gear)
anda #%101
cmpa #%000
beq accel gear is engaged and throttle is depressed
cmpa #%001
beq gear_engaged gear is engaged and throttle is fully released
cmpa #%101
beq true_idle no gear and throttle is fully released
bra test_miloff real ECU error can be checked in idle (no gear) and throttle is depressed, if still on ==> ECU error
;----------------------------------
true_idle
clr kd_count throttle released + full idle, we may clear the flag for next time
tim %100,flags10 knock map in use ?
beq milon
bra test_miloff
;----------------------------------
gear_engaged
ldaa knock_value repetitive knock situation ?
beq test_miloff
cmpa #252 knock_value <=252 but still above 248 (knock map threshold)
bls knock_repetitive
cmpa #253 came back to normal situation i.e. >=254 ?
bhi back_to_normal
rts
back_to_normal
clr kr_count
bra test_miloff
knock_repetitive
sei
tst toggle_rpm
bne rpm_condition_ok1
bra milon
rpm_condition_ok1
tst kr_count
beq kr_save
bra milon
kr_save
inc kr_count allow to track the latest occurence of knock repetitive i.e. <=252
ldaa tp1
staa kr_tp
ldaa knock_value
staa kr_kvalue
ldd rpm
std kr_rpm
ldaa timing
staa kr_timing
ldaa engine_temp
staa kr_temp
bra milon
;-----------------------------------------------------------
test_miloff
tst MILstatus
bne miloff
rts
milon
ldaa #0x88
staa MILstatus
oim %01000000,port6_copy
cli
rts
miloff
clr MILstatus
aim %10111111,port6_copy
cli
rts
;-----------------------------------------------------------
;----------------------------------
accel
ldaa timing_offset2 instant knock situation and then, timing pulled ?
beq test_miloff
cmpa #253 >= 3° of retard
bls knock_detected
bra test_miloff otherwise came back to normal situation i.e. >=254 ?
knock_detected
sei
tst toggle_rpm
bne rpm_condition_ok2
bra milon
rpm_condition_ok2
tst kd_count
beq kd_save
bra milon
kd_save
inc kd_count allow to track the latest occurence of timing pulled i.e. <=253
ldaa tp1
staa kd_tp
ldaa timing_offset2
staa kd_kvalue
ldd rpm
std kd_rpm
ldaa timing
staa kd_timing
ldaa engine_temp
staa kd_temp
bra milon
org 0xE350 to check potential overlap with the tpu_param_1 table
******************************
VERSION fcc 'KNOCK v14.0_0'