View Full Version : Driver programmable chips
In this post (http://www.t6p.com/forums/showthread.php?t=2398) I put out some code for a boost controller. It is a work in progress and I realized no one without a PROM burner would ever be able to make much use of my first controller (myself included) so I am improving it. Everytime I changed my boost I needed a new chip with a different gain value. Rather than cart a bag of chips around I decided to make it user programmable from the driver's seat.
Right now my test chips allow me to key on, program the controller gain using the throttle (one pump increments value by one) and it displays the programmed value on my scanmaster. I modified the ALDL data to replace LV8 with my programmed value. No laptop or complicated equipment needed although direct scan uses can see the BLM value changing. It will allow me to set the gain from 0-10 (zero meaning no controller, 10 meaning boost slowly oozes from ~12 psi up to the set point) and wraps around again. Its also in non-volatile RAM so it remembers the settings after turning off the car. Set and forget. Anyone would be able to set it according to their tastes.
The data is stored in the BLM cell 12 that no car can ever access, I also use values from 128-138 so if by magic the car managed to access that cell it would find a valid normal to slightly rich BLM value to use. Also the car doesn't try to reset the BLMs because a value is out of the normal limits.
The programming code is locked out while the engine is running so the setting doesn't change everytime you go higher than 50% TPS.
This programming feature could be used by anyone to provide user configurable routines. The patch is unrelated to the boost controller, it simply progams a memory location. For my car I altered the boost patch to use the programmed value. If there is interest I am willing to post the programming patch.
BoostKillsStress
05-29-2004, 06:54 PM
Well, I certainly can't imagine anyone not saying they'd like to see this type of code, except for maybe some chip vendors :deal: it can lead to some cool features like adjustable total timing, adustable boost ramps as yours, adjustable A/F ratios in wideband controlled chips such as mine and I've had thoughts of wanting to add something like this to my chip once I completed my current tinkering and tuning if there is such a thing as ever being completed with these cars.....:add_wegbr :add_wegbr :add_wegbr
jastrckl
05-30-2004, 04:09 PM
Yeah it looks like steve may be in trouble ;)
nah, his customer service pretty much guarantees him some bizness
BoostKillsStress
05-30-2004, 10:04 PM
BJM, I just thought of a new feature to add to my wideband chip..thinking out loud..if the car starts to have knock, it will automatically add fuel until the knock goes away then return to your original target A/F ratio while continuing to watch for any further knock....this stuff sure can be fun:arco: Code available to the highest bidder :SHOCKED: if I ever get it where I like it :cool:. Its starting to get turely adaptive.
Bruce
05-31-2004, 05:59 PM
BJM, I just thought of a new feature to add to my wideband chip..thinking out loud..if the car starts to have knock, it will automatically add fuel until the knock goes away then return to your original target A/F ratio while continuing to watch for any further knock....this stuff sure can be fun:arco: Code available to the highest bidder :SHOCKED: if I ever get it where I like it :cool:. Its starting to get turely adaptive.
What's really nice about ion sensing is that it can detect the onset of detonation, rather then after it occurs with the acoustic stuff. Yes, adding a lil fuel is 1,000x better then not, so as to get the in chamber temps back down.
FWIW, the Sy code ties the knock to the wastegate, to drop boost.
Just imagine what you could do with an extra 16K of space to work with, in the 58 code that I've reworked...... <g>
The current GN code pulls WG PW due to knock. The factory set the threshold pretty high (15 deg) since with factory boost levels you could tolerate those high levels. The problem is that the boost won't fall for 0.25-0.30 seconds after you pull the wastegate duty cycle back. Pulling timing is instant.
jastrckl
05-31-2004, 09:10 PM
Steve who?
steve yaklin, makes maxeffort driver programmable chips. They work pretty much the same way to increment values w/ gas pedal, uses the AC switch position to decrement. he has 8 and 16 position thumbwheels and a mafless version also available that runs on a 3 bar map.
Well, here it is. Turn key on and start pumping the pedal, each pump increments the BLM cell 12. After 138 it wraps around again to 128. Once engine is running the programming patch is locked out. I modified my ALDL stream to put the programmed value in the stream rather than LV8 something I don't use when I am driving.
I have since modified my boost controller to use this memory location by reading cell 12 and subtracting 128 from it to get the boost controller gain value.
I am ironing the kinks out of a modification to this patch that lets me program 3 separate BLM cells 8, 12, 13 all inaccessible by the car when running. Its only 16 bytes longer.
From WG calculation JMP to programming patch.
3874: 7E 37 13 Replaced Store of Acc B into $CF
Start of patch, replaces MAF correction table
370E: FF 255 rmin
370F: FF 255 qmin
3710: 00 0 rnum=9
3711: 80 128 MAF % chg vs. flow and temp. (0 g/s) Space available from $3713-3761
3712: 80 128
3713: 96 01 LDAA $01 Load flags, Acc A = $01
3715: 2B 1D BMI $3734 If Engine Is Running, branch to end.
Here if engine not running
3717: D6 36 LDAB $36 Load TPS into Acc B
3719: 2B 04 BMI $371F If TPS>50% branch into increment code.
Here if TPS<50%
371B: 84 F7 ANDA #$F7 Set Bit 3 low.
371D: 20 13 BRA $3732 Branch to store flags.
Check Bit 3 before allowing increment.
371F: 85 08 BITA #$08 Filter down to Bit 3. BITA only tests, does not alter A.
3721: 26 11 BNE $3734 If Bit set then branch to end
Here if TPS>50% and bit not set. Okay to increment and set lock out.
3723: 7C 00 F9 INC $F9 Increment $F9, BLM cell 12. Minimum value is 128 from ECM reset.
3726: D6 F9 LDAB $F9 Load current value for checking.
3728: C1 8A CMPB #$8A $F9 minus 138
372A: 25 04 BCS $3730 If $F9<138 carry is set, branch
Here if cell needs to wrap around.
372C: C6 80 LDAB #$80 Set Acc B to 128
372E: D7 F9 STAB $F9 Restore to 128
3730: 8A 08 ORA #$08 Toggle up Bit 3
3732: 97 01 STAA $01 Store flags with Bit 3 set either way.
3734: 4F CLRA Prepare for return to code. A needs to be clear.
3735: D6 CF LDAB $CF Acc B contains modified WG PW.
3737: 7E 38 77 JMP $3877 Return to line below the branch to this patch.
Last address 3739:
Table ends at 3761:
vBulletin v3.6.0, Copyright ©2000-2012, Jelsoft Enterprises Ltd.