Part of MembersPage/DTechnologies/Hayabusa project.
Configuration (it's not complete because I'm writing it RIGHT NOW :)
While I'm waiting to get some quotes back on having my rotor machined, I'm going to start building my config files and tables using what information I have right now. I've been reading some of your configurations and I just hope that together we can keep my engine from blowing up hehehe.
Much of this is based off of the comments in JimW's fantastic setup config. I'm going to make a lot of mistakes I'm sure and I'll make comments where I've left items as is because I didn't know if they needed to be changed and where I've put in my own values. I'll be using JimW's values where I don't know what my values should be...let me know if you object Jim. I'll then change these values over time to values that will work with my engine.
- period time 'crank_minper' is the minimum period between trigger events (that is 180 degrees for 4 cyl; 90 degrees for 8 cyl)
- When engine.tps < tps_thres
- fuel is cut if engine.rpm > 'overrun_fuel_cut'
- fuel is enabled if engine.rpm < 'overrun_fuel_resume'
- in between, fuelcut state is not altered (this provides hysteresis, so there is no fast flipping on/off when engine is around a given RPM)
- fuelcut left on if coming from higher RPM
- fuelcut not applied if coming from lower RPM (before TPS was released: since it's unlikely - though possible downhill - that RPM increases with TPS released )
- I think I'm going to use P259_4 for the idle solenoid relay. Since INJFET_4 can handle 5 amps easily (no PWM), I might use it instead. Just don't forget to set up element 4 in h[0], see GenBoard/Manual/DigitalOut/Table
- I just realized that having act_rpm control my air shifter is only half of the equation. I also need to have the ignition cut for an instant to unload the gears in the transmission. This cannot be done simply via the config file (ignition only rev limiter not implemented.. fuelcut based ruled out ?) => someone will need to do some custom modifications to the code.
\n
primep=0D #Fuel Pump Priming 0x0D=1.3ms JimW. primep_temp_scaling=A0 #Hot start priming 0xA0=63% JimW. cwl=1E #Cold cranking pulsewidth 0x1E=3.0ms JimW. cwh=0A #Hot cranking pulsewidth 0x0A=1.0ms JimW. cranking_thres=03 #Cranking threshold 0x03=399 rpm JimW. crank_minper=0F #Minimum crank period 0x0F=2.4ms DTech 'busa rev_limit=78 #Rev Limit 0x78=12,000 rpm. DTech 'busa. ###### #Injector setup # displacement = 79.2 CID = 1298cc # 4cyl, 4inj, 37.14lb/hr injectors # 2 squirts per 720deg. TODO: why not 1 ? # I've chosen 2 squirts so that each cylinder will get fuel exactly the same without knowing # pair of cylinders are in what phase. All cylinders will get a squirt at intake and a squirt # at exhaust. Otherwise 2 will get squirts at instake and 2 will only get squirts at exhaust. # I know this doesn't matter a whole lot, but if the software can do it, why not? #calculated using above specs in megasquirt calculator: #http://www.megasquirt.info/manual/mfuel.htm#reqfuel # req_fuel cut in half to double resolution of j[] req_fuel=1C #5.6ms = 56 * 100 micro seconds = 0x38/2=0x1C alternate=01 #01=alternate between first and second batch divider=02 #divider = (number of cyl/(alternate-1) ###### #Injectors: Salvaged from Honda S2000. Rated for 390cc/min #Injector Firing Sequence #Even though injectors are being fired in pairs, each will be connected to a seperate pin so that sequential injection is a future possibility. #EC36 pins 06,07,08 and 09 to be used. 06+07=0x40+0x01=0x41, 08+09=0x10+0x04=0x14 h[0]=41 14 00 00 00 00 00 00 injopen=10 #Injector opening time 0x10=2.56ms JimW. battfac=10 #Battery compensation JimW. injocfuel=20 #Injector opening compensation 0x20=7.68ms JimW. injrampup_battfac=FF #Injector battery compensation 0xFF=77% of injocfuel@14V injpwmt=FF #Injector PWM time. disabled=0xFF. JimW. infpwm=FF #Injector duty cycle. 0xFF=100%. JimW. injpwm6=00 #Injector duty cycle @ 6V 0x00=00%. JimW. rpmk[0]=0B #RPM Calculation. JimW. rpmk[1]=B8 tps_low=00 #TPS Calibration. Starting with JimWs values tps_high=FF #Will be calibrated later tpsdot_kpadot_conf=00 #Use TPS DOT for acceleration enrichment. JimW. tpsdotrate[0]=05 #Change in throttle position over 0.1 sec. JimW. tpsdotrate[1]=14 tpsdotrate[2]=28 tpsdotrate[3]=4D tpsaq[0]=00 #TPS accelerator enrichment tpsaq[1]=00 #Set to 00 for initial VE tuning tpsaq[2]=00 tpsaq[3]=00 tps_thresh=05 #Throttle Sensitivity JimW. tpsasync=02 #Acceleration duration 0x0A=1second JimW. acmult=64 #Cold acceleration multiplication factor 0x64= 0bias JimW. tpsacold=05 #Cold acceleration added amount. JimW. tpsdq=64 #Deceleration fuel cut. 0x64=100%. JimW. decel_fuelcut_thres=0F #Decel fuelcut enabled above threshold 0x0F=1500rpm. JimW. overrun_fuelcut=11 #Injectors disabled above this. 0x01=100rpm. overrun_fuelresume=10 #Injectors re-enabled below this. 0x01=100rpm. airden_ignore=62 #Idle enleaning limit. 0x62=98% JimW. kpafac=7F #MPX4250AP barometer settings. JimW. kpaofs=52 baro=64 #Mean barometric pressure 0x01=2kPa. JimW. dbaro=0C #Max allowed difference in pressure. JimW. ###### #4cyl values as per JimW's config. config11=30 config12=30 config13=02 mt_unused=FF ###### batt_cal=BC #Battery voltage calibration. JimW. Will change later with Megatune fan_temp=EA #Temp fan will come on. 0x69=105degC (Same as factory) DTech 'busa fanhyst=05 #Hysteresis for fan shut off 0x05=5degC (Same as factory) DTech 'busa fan_channel=P259_0 #fan output channel. JimW. fastidle=AA #fast idle enabled below this temp. AA=130degF. JimW. ###### #Idle air controller. Hayabusa has a mechanical fast idle built into throttle bodies. From factory it is manual. For this application, it will be operated by a small on/off solenoid...unless a better method is found. iac_stepseq=C8 #Stepping sequence. Not relevant iac_conf=10 #Idle air controller type # precise idle bit must be off (for on/off type). At the same time this means that only fastidle and fan_channel are relevant (all others are for precise_idle) # decide if you like ignition-advance adjustments for idle (but use small window initially, anyway) iac_tps_thres=05 #Enable IAC when TPS is less than this. 0x01=.64% JimW. iac_cold_idle_temp=A0 #Below this temp, idle is set to iac_cold_rpm. 0xA0=200degF JimW. iac_warm_idle_temp=D0 #Above this temp, idle is set to iac_warm_rpm. 0xD0=248degF JimW. iac_cold_rpm=145 #cold state idle rpm. 0x145=3250rpm. (Same as factory). DTech 'busa iac_warm_rpm=73 #Warm state idle rpm. 0x73=1150rpm (Same as factory). DTech 'busa iac_cold_start_pos=?? iac_warm_start_pos=?? iac_afterstart_rpm=1F #RPM overshoot after startup. ox1F=310rpm JimW. iac_afterstart_duration=20 #Duration to hold iac_afterstart_rpm. 0x20=3.2sec. JimW. iac_afterstart_steps=00 # or max 01 Steps per 160rpm #PID parameters for idle air controller (all from JimW's) iac_kp=25 iac_ki=17 iac_kd=A0 iac_integral_speed=40 iac_integral_limit_dec=10 iac_integral_limit_inc=20 iac_integral_deadband=14 iac_deadband=0A iac_pid_conf=01 iac_overclose_interval=0A # Reference position hint as function of coolant temp (all from JimW's) iac_ref_pos[0]=35 iac_ref_pos[1]=34 iac_ref_pos[2]=33 iac_ref_pos[3]=32 iac_ref_pos[4]=31 iac_ref_pos[5]=30 iac_ref_pos[6]=2F iac_ref_pos[7]=2E iac_ref_pos[8]=2D iac_ref_pos[9]=2C iac_sol_channel=P259_4 #output channel. 0xFF=disabled. ################################### # # Ignition based idle control from JimW's # # This section should be used for idle # if you have no idle air control device. # Idle control via ignition advance/retard. # # Ignition advance based fine-adjust # 0x01=0.25 crank degrees per 256rpm iac_ign_advance_change=28 # Ignition advance based fine-adjust # 0x01=0.25 crank degrees per 256rpm iac_ign_retard_change=20 # Ignition advance limit when trying to increase RPM # 0x01=0.25 crank degrees # eg 0x10=4 degree limit iac_ign_advance_limit=10 # Ignition retard limit when trying to decrease RPM # 0x01=0x25 crank degrees # eg 0x1A=6.5 degree limit iac_ign_retard_limit=1A # Minimum distance (in degrees) before change in advance/retard. # If less than n degrees of ignition advance/retard is sufficient # to reach the idle RPM target, don't change current advance/retard # 0x01=0.25 crank degrees # eg 0x08=2 crank degrees iac_ign_threshold=08 ######################### awev=1E #Afterstart warmup enrichment 0x01=1% JimW. awc=96 #Afterstart # of cycles. 0x64=100 cycles awev_temp_scaling=A0 #Afterstart warmup scaling > 170F. 0x01=0.4% #temperature bins used for interpolation (all from JimW's) warmup_clt_range[0]=00 # -40.0 C warmup_clt_range[1]=14 # -28.8 C warmup_clt_range[2]=28 # -17.7 C warmup_clt_range[3]=3C # -6.6 C warmup_clt_range[4]=50 # 4.4 C warmup_clt_range[5]=64 # 15.5 C warmup_clt_range[6]=78 # 26.6 C warmup_clt_range[7]=8C # 37.7 C warmup_clt_range[8]=AA # 54.4 C warmup_clt_range[9]=C8 # 71.1 C # warmup_clt is the value of each bin defined in warmup_clt_range (all from JimW) warmup_clt[0]=A0 warmup_clt[1]=A0 warmup_clt[2]=A0 warmup_clt[3]=A0 warmup_clt[4]=A0 warmup_clt[5]=96 warmup_clt[6]=8C warmup_clt[7]=87 warmup_clt[8]=7D warmup_clt[9]=64 #Warmup enrichment as a function of RPM. Obsolete. Not sure if it's required or not. warmup_rpm[0]=64 # 100% warmup_rpm[1]=64 warmup_rpm[2]=64 warmup_rpm[3]=64 warmup_rpm[4]=64 warmup_rpm[5]=64 warmup_rpm[6]=64 warmup_rpm[7]=64 warmup_rpm_scale=F0 #Warmup enrichment as a function of RPM. JimW. #### #EGO Setup (Is this for narrow band only? Can I get rid of this section?) #### ego_conf=07 #Seems to be standard. From JimW's ego_delta=02 #Minimum resolution change recognized. 0x02=0.8%. JimW ego_lag=03 #Minimum time between correction factor changes. 0x01=1 engine cycle. JimW. ego_coolant=92 #Minimum coolant temperature for EGO enabling. 0x92=146degF JimW ego_maxtps=FF #Maximum TPS position for EGO corrections. JimW ego_maxmap=FF #Maximum MAP for EGO corrections. 0x01=2kPa JimW ego_minrpm=08 #Minimum RPM for EGO enabling. 0x01=100rpm. JimW ego_maxrpm=FF #Maximum RPM for EGO enabling. JimW ego_warmup=3C #Warmup time. 0x3C=60sec. JimW. ego_lean_limit=30 #Maximum allowed anleanment of AFR. 0x30=19.2%. JimW. ego_rich_limit=30 #Maximum allowed enrichment of AFR. JimW. ############################################################# #WideBandO2 code needs to be done...I'm clueless ################################################################## ################################################### #Knock Detection will not be used. I don't know if I can leave variables out or if they need to be set to FF. ##################################################### ve_learn_conf=01 #Enable VE Learning ve_learn_coolant=D8 #Minimum coolant temp for learning. 0xD8=176degF. JimW #VE Learning speeds. All from JimW's ve_learn_rpm_scale=1E ve_learn_kpa_scale=1E ve_learn_ego_scale=43 ve_learn_speed=FF ve_learn_max_power=FF ve_learn_min_weight=4D #Minimum weight for modifying VE entry. JimW. ve_learn_limit=FF #Max deviation from reference VE bin 0x01=0.4%. JimW. ####Triggers#### primary_trigger=01 #0x01=Multi-tooth wheel. DTech 'busa tooth_wheel=17 #0x17=23= 24-1 trigger wheel. DTech 'busa tooth_wheel_twidth1=0F #0x0F=15% between teeth. trigger_tooth=01 # trigger is at 1 tooth (15 crankdegrees) after tooth after missing tooth secondary_trigger=02 #My setup doesn't have a secondary trigger. another_trigger_tooth=0c # since 4 cyl: 180 crankdegrees apart, that is 24/2 teeth tooth_wheel_twidth2=?? #My setup doesn't have a secondary trigger. cam_sync_r_edge_phase=FF cam_sync_f_edge_phase=FF reset_engphase_after=FF ####Ignition#### ign_tdcdelay=?? #Distance (in half degrees) between trigger_tooth tooth after missing tooth and cyl1 TDC # where cyl1 is the cyl fired by the IGBT associated with element "ignchmax" in h[2] like in h[2]=02 04 03 01 ign_dwell14=14 #Dwell settings for 14V JimW ign_dwell6=1E #Dwell settings for 6V JimW ign_crank_advance=20 #Advance at cranking 0x01=0.25deg JimW ign_out=70 #??? JimW ignchmax=03 #Highest indexed ignition coil to trigger. DTech 'busa pump_onmintime=0F #Turn off pump after x time. JimW fuelpump_channel=P259_5 #output channel. JimW inj_stage2_rate=FF inj_stage2_start_tps=FF inj_stage2_start_map=FF als_lowrpm=FF als_maxtps=FF alsignretard=FF als_rich=FF egt1_cal=?? #Won't be used in my setup egt_offs=?? #Won't be used in my setup boost_conf=?? boost_targetoffs=?? boost_minpressure=? boost_pid_kp=?? boost_pid_ki=?? boost_pid_kd=?? boost_pid_ilimit=?? boost_channel=INJFET_5 water_pump_temp=00 #Water pump not used in my Setup water_pump_hyst=00 water_pump_channel=FF hybrid_rpm_a=00 hybrid_rpm_m=00 #Will be used to trigger auto-shift air shifter. misc2out_minrpm=6E misc2out_maxrpm=FF misc2out_mintps=00 misc2out_maxtps=FF misc2out_minmap=00 misc2out_maxmap=FF misc2out_channel=FF act_wot_rpm=FF act_wot_channel=FF act_rpm_rpm=6E #Activate at 11,000 RPM # TODO: don't forget to set element7 of h[0] for the desired mask of outputs act_rpm_channel=INJFET_7 #Might be used for water injection misc1out_minrpm=00 misc1out_maxrpm=FF misc1out_mintps=00 misc1out_maxtps=FF misc1out_minmap=52 #Activates at 12psi misc1out_maxmap=FF misc1out_channel=?? #LCD layout. Taken from JimW's lcd_c0=FE lcd_delay=FF lcd_backlight=FF lcd_offs[0]=FF lcd_offs[1]=FF lcd_offs[2]=FF lcd_offs[3]=FF lcd_default_view=00 # replace spaceholder with real masks from GenBoard/Manual/DigitalOut/Table # F23 are fuel control outputs for injectors for cyl 2 and 3 # F14 are fuel control outputs for injectors for cyl 1 and 4 h[0]=<F23> <F14> .. .. <mask for idle solenoid if iac_sol_channel=INJFET_4 chosen> .. .. <mask for act_rpm_channel=INJFET_7> #Ignition sequence #I'd like to use EC36 pins 33 & 34 h[2]=01 02 01 02 01 02 01 02 #Boost target b[0]=?? ?? ?? ?? ?? ?? ?? ?? t[0]=?? ?? ?? ?? ?? ?? ?? ??