Page 30 of 34 FirstFirst ... 2025262728293031323334 LastLast
Results 436 to 450 of 509

Thread: 1997 F-Body ECM

  1. #436
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,470
    Hi Tom

    Did you manage to decipher the config byte meaning and how to use it on dynamic pd setup mode 2A

    For example we have

    6C 10 F1 2C FC [4C] 11 A1 12 55 F2
    6C F1 10 6C FC 4C 1D
    6C 10 F1 2C FC [6A] 12 5B FF FF 71
    6C F1 10 6C FC 6A D4
    6C 10 F1 2C FB [4B] 11 44 12 50 46
    6C F1 10 6C FB 4B B7
    6C 10 F1 2C FB [63] 12 32 12 5A D5
    6C F1 10 6C FB 63 D8
    6C 10 F1 2C FA [4A] 11 02 11 04 71
    6C F1 10 6C FA 4A E6

    The byte in bracket is some config byte and if not set up correctly you get 7f reject. It looks like bit encoded but still have no clue about the meaning.

  2. #437
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Hi,

    I *thought* this all was figured, that is until I saw your post. I might need to look at this again unless the following solves your Q

    Code:
    Data byte 2								
    Binary 								
    	aaXX XXXX		aa is type of entry					
    			aa =00		Define by offset			
    			aa=01		Define by PID			01XX XXXX  
    			aa=02		Define by address			
    			aa=03		MFG defined			
    								
    								
    	XXbb bXXX		bbb is starting byte					
    			bbb = 000		invalid			
    			bbb = 001		GM case			01001XXX
    			bbb = 010					
    			bbb = 011					
    			bbb = 100					
    			bbb = 101					
    			bbb = 110					
    			bbb = 111		invalid			
    								
    								
    	XXX Xccc		ccc is number of data bytes for this param					
    								
    			ccc + bbb must be <= 6					
    								
    			ccc = 000					
    			ccc = 001					
    			ccc = 010		PID DFINED			01001010 <-- This is supported
    			ccc = 011					
    			ccc = 100					
    			ccc = 101					
    			ccc = 110					
    			ccc = 111
    In the cases you suggest...
    ------------------------------------------------------------
    4C 01 001 100
    6A 01 101 010
    4B 01 001 011
    63 01 100 011
    4A 01 001 010

    01 <------------- PID defined

    XX 001 <------- 1st position in the responding frames
    XX 100 <------- 4th position in the responding frames

    XX XXX 010 <-- Two bytes
    XX XXX 011 <-- Three bytes
    XX XXX 100 <-- Four bytes

    As I remember things, Only pid defined is supported. The result can be placed in the responding frames as needed But the starting position and length need to be considered not to exceed the max frame length (this is a J1850 thing).
    The PCM will kick out any request where the number of bytes does not match the reply byte count of the PID. This value is given in the PID look up table if you want to find a specific PID. That or just request the value of the pid in question and count the bytes it returns

    Let me know if this makes any sense/solves your issue

    -Tom

  3. #438
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,470
    Great info. Thanks for that clarification.

    I will test it out soon and report any issues, or unhandled cases.

  4. #439
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,470
    Hi Tom,

    Do you have any info on this config byte for mode 2a. I guess again bit encoded.

    --> 0A 00 6C 10 F1 2A [14] F6 F7 F9 FA here you use 14 for config byte

    --> 0A 00 6C 10 F1 2A [24] FB FC FD FE here you use 24 for config byte

  5. #440
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Hi Kur4o,

    All I have in notes ..

    $00 Stop sending data
    $01 Send single response
    $02 Repeat at slow rate: 100ms rep rate: Limited to 4 PID
    $03 Repeat at medium rate: 50ms rep rate: Limited to 4 PID
    $04 Repeat at fast rate: 25ms rep rate: Limited to 4 PID

    Today is panic at home, I am off line due to well problems. Day to be spent with pipes & tanks
    Re request for s/w explanation on HBC. That also in in the works. Doing that helped me find the last (I hope) bug in the cable. Next will be 4X, then complete on that.

    If mode $2A is still a problem, PM me and I will dive into that code.


    -Tom
    Last edited by Tom H; 01-26-2022 at 03:13 PM.

  6. #441
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Looking at the communication through the SPI between ESide and TSide, I ran across a reference to backup mode. I had a quick look at this before, but just now I am starting to gain some understanding of it.

    A 3K9 resistor between Field Service Enable (FSE) and ground (that is blue pin 20) brings the PCM to backup mode. This disables transfers on the SPI between E&T. All the expected values normally transferred from the Tside are now defaulted by the Eside. Constants that replace the values normally transferred are selected by GM to "do no harm" or perhaps as little as possible.

    Interesting how while looking at upload through SPI, old questions get answered. I plan to comment these as "BACKUP DEFAULT" in the code.

    -Tom

  7. #442
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477

    Knock system

    I have done some research into the knock sensor and processing in the OBDII style PCM. A lot of what follows is transferable to earlier PCMs however.

    The best place to start is at the sensor it's self. The knock sensor is a piezoelectric contact microphone bolted to the block responds to the vibrations set up when the engine knocks. The sensor can be described as a broadband resonant piezo electric contact sensor. This conclusion comes from the fact that the sensor is a single terminal style (second terminal is ground through the block). This implies that the output level is much higher than the flat response style, eliminating the need for coaxial connection. I expect that the sensor output is somewhere close to 2V P-P when bolted to a properly running engine at idle. (more on this later) A flat response style piezo might be expected to generate a much lower level signal.

    Some engine configurations make use of two sensors mounted to the opposite engine banks. In my case there is a single sensor. The knock sensor accepts a wide enough vibration band to be used on many differing platforms. These platforms, while using the same sensor process the output differently depending on knock frequency and level of the background sounds of the engine running. The part used in my application is also used on I4, V6 and V8 applications of various displacements. This suggests that the microphone bandwidth is wide enough to cover the vibration knock sets up on all these very different applications. Along with the piezo crystal internal to the part, a resistor in parallel with the crystal is used to bleed off voltage. It is suggested that this is done for handling reasons before the part is installed. Some applications use this resistor to indicate that the sensor is connected. My application looks at the noise generated with the engine running to determine if the knock sensor is connected and working. This is a change from the earlier style that looks only for the resistance to determine if the sensor is connected. In my case knock sensor is connected to the PCM on Blue 22. Applications that use two sensors connect on Blue (connector C4) 21 and 22.

    I wanted to understand the knock sensor's output in terms of quantities it measures. One article i read suggests the following:
    - Frequency
    - Velocity
    - Acceleration
    - Displacement

    Looking at this I suggest that velocity and displacement represent only a DC component. As the knock sensor measures AC, these are eliminated. The level of the output is dependent only on acceleration measured in "Gs". Thus sensitivity of the knock sensor is voltage/acceleration. Units in the range of x mVolt/g. It was hard for me to think of the block vibration producing Gs of acceleration but all the power of the knock burn translates into quite a powerful wave conducted through the iron.

    In the OBDII design the sensor is biased to 5V. This makes perfect sense given that the knock module is powered by an analog 10V. The bias half way between is common practice to allow the input to swing +ve and -ve between the rails. A dual 4:1 mux is used to direct the knock sensor signal to the knock module. In the case where two sensors are used, the TPU (from the ESide, over the ribbon cable) directs the correct signal to the knock module. In single knock sensor applications (Like mine) the signal feeds through both mux such that the same knock sensor feeds the knock module independent of the TPU output. I believe it is done like this such that the calibration can set for single/dual sensors and for which input (pin 21 or 22) is to be used.

    During my first look at the knock system, I was never able to get a reliable wave file of the sensor output. I was not sure of what the level would be, nor am I completely confident how laptops treat microphone inputs. So: I wrote a program that permits me to drive my speaker output with engine/knock signals. For background engine noise, I produce white noise at a level that I can control. For the knock signal, I produce a variable number of cycles at a level and frequency I can control. With this code I can cause the knock module to detect knock. It is very repeatable and gives me what I need to analyze the knock module.

    Now, an ask of you...
    Could someone with an LT1 OBDII vehicle take some measurements for me? What is involved is for you to send the following command to the PCM and record the PCM's reply. The command can be sent using ELM or ?? cable and a terminal on your laptop. This command reads location $0111 which is the output of an A/D converter. This converter measures the signal level of the knock input.

    Command: 4C 10 F0 23 00 01 11 01
    Should produce an output like
    Response: 4C F0 10 63 01 11 WW XX YY ZZ <CRC>

    If someone could measure the output at rpms from idle through 4000RPM it would help me with the next bit of this knock system analysis. If you would like help running this test, please PM me.

    I hope to cover the knock module in the next post. Having the results of the test above will make the content more accurate.

    -Tom
    Last edited by Tom H; 11-28-2022 at 02:51 PM.

  8. #443
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477

    Knock system

    Here is a picture of the waveform produced by my PC sound card and the knock module output.

    IMG_1898.jpg

  9. #444
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477

    Knock system

    Just a little to add to my last post. Working with the knock module in a breadboard circuit, I find that the envelope of the knock signal is quite important. I have come to some conclusions, but without jumping ahead I will describe the change that was made.

    I found that the wave shape of the knock signal is quite important. The knock module averages the input level to come up with the background noise level. Where possible I will get into gain and mods that could be made to the module. For now, I have found that generating between 6 and 50 cycles of 5-6KHZ will trigger the knock IF the background isn't too high. A knock signal has an envelope that decays in a natural log function. I changed my software to simulate that envelope and I no longer have trouble keeping within the calibration levels for the background noise. Here is the updated signal I generate and the knock output and a picture of the breadboard.

    -Tom

    IMG_1901.jpg
    IMG_1902.jpg

  10. #445
    Fuel Injected!
    Join Date
    Jul 2019
    Location
    Orange, CA
    Posts
    757
    http://www.gearhead-efi.com/Fuel-Inj...ll=1#post18135

    Would this help at all in making sense of how the knock filter processes things?

    I'm incredibly interested in further research into the knock module. It's been the one thing that's gotten in the way of having proper knock feedback on aftermarket engines. If the knock filter can be tuned for the appropriate knock profile so that the factory knock feedback system can work its magic, that would go a long way to improving tuning safety.
    1990 Corvette (Manual)
    1994 Corvette (Automatic)
    1995 Corvette (Manual)

  11. #446
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Quote Originally Posted by NomakeWan View Post
    Hi,
    Yes this is a help, thank you for the link. It's been a while since I have done any significant analog work, probably since school days. To say I am a bit rusty is an understatement. I now have my text book from way back open and re-learning some details of filter design.

    So far I have a good understanding of the knock filter ID (easy). Pin 1 of the filter is connected to +5V, pin 6 is connected to ground. Two resistors R9 and R10 divide the voltage. The divided voltage is connected to knock module pin 3, that is the module ID. On the TSide PCB the knock module ID is connected to a low pass filter and then to the external blue connector on pin 13. This means that you can test if the correct module is installed without opening the PCM and looking for the knock module part number.

    One major difference between the '94/5 and the OBDII '96/97 is the way that proper connection to the knock sensor is done. The earlier PCMs bias the knock sensor through a resistor and look for the resistance to ground that is internal to the sensor. This way if the connection becomes open (or the resistor fails) the bias voltage is sensed as being too high and a malf code is registered. OBDII is quite different. The OBDII design looks at the signal produced from the knock sensor. In the case the level of the signal is in range, the sensor is deemed to be working/connected/OK. A low level of vibration from a running engine indicates a malfunction. A level that is too high is also tested. This may be looking for the knock input to be mis-connected to battery or even perhaps too much vibration from the engine (rod knock or ??). You can see physically the difference between the early filter and the OBDII design. Later units have an additional OP-Amp (NE532D) installed. This OP-Amp is used to buffer the "background noise" signal output. This output is what the ESide code looks at to determine if the sensor is connected. Earlier on (somewhere in this thread?) Kur4o sent me pictures of his knock module internals. In that picture you can see in the upper left of the module a footprint for the later design. I also spent a little time looking for other differences, so far the rest of the module looks the same.

    Not sure if I posted the map of reference designators for the knock module. I will re-post them as I get further into the circuit. Thus far I have identified a low pass filter, but gotten no further.

    One of the posts in the thread you suggested might be the rosetta stone for the design. There is a block circuit and waveforms contained in one of the patents (Motorola_patent_US4346586.pdf) that I think will be a great help. I hope that I can work through & understand the design. It may take an analog EE though because the design is quite complex.

    One thing I am running into is the lack of good test equipment. Starting to think I need a function generator that can be set to rapidly sweep through a range of frequencies.This would speed up finding the center frequency and determine the pass/reject bands (3 DB down points). Also going to need to find a few knock filter test samples. It may be necessary to cut traces and isolate sections of the circuit. Ultimately I will need to limit the amount of time spent on this. Let's see how it goes.

    -Tom

  12. #447
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477

    Knock filter

    Looking through the patent I see a bunch of waveform that match or are similar to what I am getting on my scope.

    Here are the reference designators I will use through this analysis.

    KNOCK_REFDES_R.jpg
    KNOCK_REFDES_C.jpg

    Here is the schematic
    Attached Files Attached Files

  13. #448
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Quote Originally Posted by NomakeWan View Post
    http://www.gearhead-efi.com/Fuel-Inj...ll=1#post18135

    Would this help at all in making sense of how the knock filter processes things?
    GREAT info for me! Looking into the patent... https://patents.google.com/patent/US4384473A/en

    This is describing the design of our knock filter. Lots of correlation between patent and hybrid circuit. I don't have too many of these filters so much of my surgery is taking place on a unit out of an Olds V6. Filter carries a part number 16212229. This part was used in '96/7 on a number of 3.8L V6s. I believe these engines to have a 96.5mm bore size. A web based calculator suggests that the knock for an engine with this bore size will be around 5.9 to 6KHz.

    I put the knock sensor in my breadboard, connected it to my PC and started throwing various frequencies into the input. The first stage described in the patent is a band pass filter. After identifying the components and ASIC pins involved in the filter I took some measurements...

    Filter.jpg

    Looks just as you would expect a band pass filter to. This filter could be modified based on the exact application. Hmmmm

    For the experts here: Other than bore size, what other factors are involved in the knock frequency. Some notions of mine:

    • Block material
    • Stroke
    • Compression ratio
    • intake valve close time in cycle


    My thought is that the frequency would tend to increase as the piston moves up against the detonation. The resulting vibrations would start at a lower frequency than the end of the wave. As the piston moves up the volume of the cavity would decrease. This all would cause the oscillation frequency to go up. Idea about C/R is that the detonation would perhaps start earlier in the compression stroke. Close of the intake starts the compression cycle...

    Your thoughts?

    -Tom
    Last edited by Tom H; 12-04-2022 at 03:43 PM.

  14. #449
    LT1 specialist steveo's Avatar
    Join Date
    Aug 2013
    Posts
    4,007
    knock frequency is pretty much all about the bore size. although temperature has a small effect as well because physics, and probably a few other things, so you do need to keep the width of your bandpass a bit wider than expected.

    i have the following calculation that has served me well i forget where i got it. where n = bore mm: knock khz = 900 / ( 1.570795 * n )

    also have this spreadsheet i found that apparently calculates it with higher precision if required (attached)

    the knock module at a simple level is definitely like a band pass filter, and when you get a signal of sufficient amplitude in there, it simply goes KNOCK!!. it sounds simple but the amount of noise coming out of an engine is really extreme.

    i don't think detecting knock is ever a problem, and the stock knock module's band seems wide enough to handle overbores. the problem is these engines are really noisy and clattery and so are the ancient chassis that they are attached to - so there can be lots of other stuff that crosses in that band and cause tons of false knock, especially once modified with fancy valvetrains and looser clearances in the rotating assembly

    i had success once by installing a capacitor that functioned as a high pass filter on the sensor itself. it seemed to alleviate some valvetrain noise that was causing false knock but still allow knock detection. i calculated the high pass to start pretty much right at the knock frequency then induced knock by temporarily cranking up timing advance to test the results.

    if you want a really good knock system you could probably figure a good way to replace the module with a small programmable DSP so you could configure your own filters

    personally when i have run into issues with knock detection on a naturally aspirated engine with an antique ECM, i usually tune timing advance conservatively and then the thing goes right in the garbage can -- especially on a track car or something where fuel is consistent, and a false knock can cost you horsepowers.
    Attached Files Attached Files

  15. #450
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Quote Originally Posted by steveo View Post
    knock frequency is pretty much all about the bore size. although temperature has a small effect as well because physics, and probably a few other things, so you do need to keep the width of your bandpass a bit wider than expected.

    i have the following calculation that has served me well i forget where i got it. where n = bore mm: knock khz = 900 / ( 1.570795 * n )

    also have this spreadsheet i found that apparently calculates it with higher precision if required (attached)

    the knock module at a simple level is definitely like a band pass filter, and when you get a signal of sufficient amplitude in there, it simply goes KNOCK!!. it sounds simple but the amount of noise coming out of an engine is really extreme.

    i don't think detecting knock is ever a problem, and the stock knock module's band seems wide enough to handle overbores. the problem is these engines are really noisy and clattery and so are the ancient chassis that they are attached to - so there can be lots of other stuff that crosses in that band and cause tons of false knock, especially once modified with fancy valvetrains and looser clearances in the rotating assembly

    i had success once by installing a capacitor that functioned as a high pass filter on the sensor itself. it seemed to alleviate some valvetrain noise that was causing false knock but still allow knock detection. i calculated the high pass to start pretty much right at the knock frequency then induced knock by temporarily cranking up timing advance to test the results.

    if you want a really good knock system you could probably figure a good way to replace the module with a small programmable DSP so you could configure your own filters

    personally when i have run into issues with knock detection on a naturally aspirated engine with an antique ECM, i usually tune timing advance conservatively and then the thing goes right in the garbage can -- especially on a track car or something where fuel is consistent, and a false knock can cost you horsepowers.
    Thanks for your post! I guess in reading your knock frequency explanation + all the rest of the things I have found, it's just that the fundamental is so much stronger that there is no reason to involve the lesser harmonics and so on. Once again guessing, the bore size surrounds the pressure wave and that the vibration set up is in the circumference of the bore.

    Your observation about the false knock is also on point. Problem is when false knock is present, if it is in the frequency band of the knock you can't filter it. A DSP would be able to create a better filter for sure, but it is way outside what I have set as my goal. Part of tuning must be being able to locate and cure issues. I think understand the complete module would permit changes that would better reject some issues.

    In any case at least part of my goal is to understand the technology used back in the day, and in that I am making progress.
    -Tom

Similar Threads

  1. 94-95 LT1 $EE Y-body vs. F/B-body PCM differences
    By johnny_b in forum GM EFI Systems
    Replies: 5
    Last Post: 01-15-2023, 02:41 PM
  2. Tuner Pro XDF 1999-2000 F Body + Y Body
    By john h in forum OBDII Tuning
    Replies: 33
    Last Post: 02-02-2020, 11:12 PM
  3. Replies: 31
    Last Post: 09-20-2018, 06:00 AM
  4. F-body engine install to B-body
    By serge_an in forum GM EFI Systems
    Replies: 4
    Last Post: 09-22-2016, 02:51 PM
  5. 95 F-body Fuel Pump with 95 B-Body Engine/Tank
    By EPS3 in forum GM EFI Systems
    Replies: 7
    Last Post: 09-19-2016, 02:40 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •